Gmail-API-Dekodierung von Nachrichten in Javascript

Ich bin mit ernsthaften Problemen, die Decodierung der Nachricht Textkörper der E-Mails erhalte ich über die Gmail-API. Ich will schnappen Sie sich den Inhalt der Nachricht und setzen Sie den Inhalt in ein div. Ich bin mit einem base64-decoder, die ich kenne, nicht entschlüsseln von E-Mails kodiert anders, aber ich bin nicht sicher, wie Sie Sie zu prüfen, eine E-Mail zu entscheiden, welcher decoder zu verwenden-E-Mails, die sagen, Sie sind utf-8 kodiert sind, werden erfolgreich decodiert die base64-decoder, aber nicht einen utf-8-decoder.

Ich habe recherche E-Mail-Decodierung für mehrere Tage jetzt, und ich habe gelernt, dass ich ein wenig aus meiner Liga hier. Ich habe nicht viel getan, Arbeit mit Codierung um E-Mail vor. Hier ist der code, den ich verwende, um die E-Mails:

gapi.client.load('gmail', 'v1', function() {
var request = gapi.client.gmail.users.messages.list({
  labelIds: ['INBOX']
});
request.execute(function(resp) {
  document.getElementById('email-announcement').innerHTML = '<i>Hello! I am reading your <b>inbox</b> emails.</i><br><br>------<br>';
  var content = document.getElementById("message-list");
  if (resp.messages == null) {
    content.innerHTML = "<b>Your inbox is empty.</b>";
  } else {
    var encodings = 0;
    content.innerHTML = "";
    angular.forEach(resp.messages, function(message) {
      var email = gapi.client.gmail.users.messages.get({
      'id': message.id
      });
      email.execute(function(stuff) {
        if (stuff.payload == null) {
          console.log("Payload null: " + message.id);
        }
        var header = "";
        var sender = "";
        angular.forEach(stuff.payload.headers, function(item) {
          if (item.name == "Subject") {
            header = item.value;
          }
          if (item.name == "From") {
            sender = item.value;
          }
        })
        try {
          var contents = "";
          if (stuff.payload.parts == null) {
            contents = base64.decode(stuff.payload.body.data);
          } else {
            contents = base64.decode(stuff.payload.parts[0].body.data);
          }
          content.innerHTML += '<b>Subject: ' + header + '</b><br>';
          content.innerHTML += '<b>From: ' + sender + '</b><br>';
          content.innerHTML += contents + "<br><br>";
        } catch (err) {
          console.log("Encoding error: " + encodings++);
        }
      })
    })
  }
 });
});

War ich durchführen einige Prüfungen und Debuggen, so dass es überbleibsel console.log's und einige andere Dinge, die sind nur da zum testen. Noch, Sie hier sehen können was ich versuche zu tun.

Was ist der beste Weg, um zu entschlüsseln, E-Mails, die ich ziehen aus dem Gmail-API? Sollte ich versuchen, die E-Mails in <script>'s mit charset und type Attribute matching die Kodierung Inhalt der E-Mail? Ich glaube, ich erinnere mich, charset funktioniert nur mit einem src Attribut, die ich nicht hier haben. Irgendwelche Vorschläge?

InformationsquelleAutor eugene1832 | 2014-07-17
Schreibe einen Kommentar