我正在使用谷歌應用程序腳本將電子郵件數據提取到Google電子表格中。我正在嘗試修改下面的工作代碼。我敢肯定有一個更聰明的方式......但現在這個工程將電子郵件正文的子串提取到Google電子表格
function emf() {
var ss = SpreadsheetApp.getActiveSheet();
var label = GmailApp.getUserLabelByName("tkh_emf");
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 name = messages[j].getPlainBody().split("Name*:")[1].split("\n")[0];
var email = messages[j].getPlainBody().split("E-mail*:")[1].split("\n")[0];
var phone = messages[j].getPlainBody().split("Phone:")[1].split("\n")[0];
var addr = messages[j].getPlainBody().split("Street Address:")[1].split("\n")[0];
var city = messages[j].getPlainBody().split("City*:")[1].split("\n")[0];
var find = messages[j].getPlainBody().split("hear about us?*:")[1].split("\n")[0];
var sub = messages[j].getSubject().split("Feedback via the ")[1].split("[")[0];
var num = messages[j].getSubject().split("Feedback via the ")[1].split("[")[1].split("]")[0];
var dat = messages[j].getDate();
var referrer = messages[j].getPlainBody().split("Referer URL:")[1].split("\n")[0];
ss.appendRow([name, email, phone, addr, city, find, sub, num, dat, referrer])
}
threads[i].removeLabel(label);
}
}
我的電子郵件看起來是這樣的:
名稱*:名
電子郵件*: [email protected]
電話:
街道地址:3704第17屆聖
城市*:城市
你是怎麼知道我們的?*:搜索引擎結果
工作的簡要說明要求*:在這裏工作
所以我的代碼的每個提取相應的琴絃除了不需要的'電話'和'地址'字段之外的字段。如果這些字段未填寫,則電子郵件中沒有「電話」或「街道地址」字樣,因此var phone
和var addr
的行會失敗,因爲您無法拆分空值。有沒有辦法插入如果字符串'手機'和'街道地址'存在,然後執行上述?謝謝。
您是否有興趣也能夠驗證電子郵件或地址的格式,還是僅僅希望將數據分離出來? – jmindel
只需要將數據分離出來。 – testing123
您是否考慮過或嘗試將每個手機放在自己的try {}塊中,並且忽略分割錯誤? –