Dies ist das erste Skript, das ich von Grund auf neu schreiben möchte. Es war bisher nicht gut, also werde ich um Hilfe bitten.Google Apps Scripts - Extrahieren Sie Daten aus Google Mail in eine Tabelle
Fall: Ich erhalte E-Commerce-Bestätigungs-E-Mails von E-Commerce-Websites keine Antwort E-Mail-Adresse. Im E-Mail-Text senden sie E-Mail-Adressen von Käufern. Ich möchte eine automatische E-Mail an die E-Mail-Adresse des Empfängers senden.
Wie ich dies tun möchte (alle Vorschläge zur Beseitigung der Schritte werden bedankt werden).
Verwenden Sie eine Regel, um eingehende E-Mails mit einem eindeutigen Tag zu versehen.
Verwenden Sie dieses Tag, um E-Mails in Gmail mit einem Skript zu identifizieren, gehen Sie eins nach dem anderen und extrahieren Sie die Informationen, die ich brauche. Verwenden Sie Regex mit dem Body-Inhalt der E-Mails, um die E-Mail-Adresse zu extrahieren, die ich zum Senden der automatisierten E-Mails benötigen. Plan ist zu bekommen: Betreff, Datum, E-Mail vom Körper.
Schreiben Sie alle diese Informationen in eine Tabelle.
Entfernen Sie eindeutige Tag-Informationen, um doppelte Läufe zu vermeiden.
Verwenden Sie dann Form Mule Addon, um E-Mails aus der Tabelle zu senden.
Bisher habe ich mit den Schritten 1 (leicht) beschäftigt haben, und wurden mit den Schritten 2 und 3 (im nicht Coder stuggling, kann ich lesen, undestrand und hacken. Von Grund auf neu zu schreiben eine völlig andere ist Ding). Ich habe mich mit 4 beschäftigt, bevor ich denke, dass dies der beste Weg ist, damit umzugehen.
Mit dem Skript extrahiere ich Informationen in die Tabelle, mit dem Addon benutze ich die Informationen aus der Tabelle, um E-Mails zu senden.
Dies ist der bisher geschriebene Code. Ich habe den Regex-Teil für später verlassen, weil ich noch nichts in die Tabelle schreiben kann. Sobald ich das funktioniere, fange ich an, in der Regex zu arbeiten und die Label-Aspekte des Skripts zu entfernen.
function myFunction() {
function getemails() {
var label = GmailApp.getUserLabelByName("Main tag/subtag");
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
var messages=threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
var message=messages[j];
var subject=message.getSubject();
tosp(message);
}
}
}
function tosp(message){
var body=message.getBody()
var date=message.getDate();
var subject=message.getSubject();
var id= "my spreasheet id";
var ss = SpreadsheetApp.openById(id);
var sheet = ss.getActiveSheet();
sheet.appendRow(subject,date,body);
}
}
Jede Hilfe wäre willkommen.
Dank Sebastian
So eine schöne und detaillierte Erklärung! Ich konnte einfach nicht vorbeigehen, ohne Thumbs Up an 'pointNclick' zu geben! – Zongjun
@pointNclick, sorry alter thread. aber konnte nicht helfen, zu antworten .... ich habe 5000+ Nachrichten (Gewinde) in einem Aufkleber in Gmail. aber der obige Code listet nur 524 Nachrichten in der Google-Tabelle auf. Thread.length im Debug-Modus zeigt nur 500. Was könnte der Grund sein? – sifar786