2013-07-18 137 views
0

我已經構建了一個腳本,它將一些數據發送到單元格「B」中的地址,名爲「電子郵件」的電子表格表。目前,它似乎只發送到一個電子郵件地址。我希望它能夠發送到同一單元格內的多個地址,這些地址將用逗號分隔。希望這是有道理的。感謝您的幫助!這是我目前用於提取電子郵件地址碼:發送電子郵件到Google電子表格中的多個地址

var email = ''; // If we don't find a match, we'll fail the send 
    for (var row=0; row < names.length; row++) { 
    if (names[row][0] == recipient) { 
    email = emails[row][0]; 
    break; // end the search, we're done 
} 
} 
+0

這似乎是一個延續[此問題](http://stackoverflow.com/questions/17662477/send-email-to-specific-address-listed-on-another-sheet-using-google-apps-script)。如果您使用的是'MailApp.sendEmail(email,subject,message)',就像在前面的回答中那樣,它應該按照您的描述進行操作。如果它不起作用,請更具體地說明什麼是錯誤的。 – Mogsdad

+0

@Mogsdad這是相同腳本的延續,並感謝您對最後一個組件的幫助。出於某種原因,它不會在逗號後發送到第二個地址。它只是將它發送到第一個地址。但是,它不會拋出任何錯誤。 – dericcain

+0

適合我。我發送到三個不同的(非別名,非谷歌)電子郵件地址,都收到該消息。使用GmailApp和MailApp進行測試。即使使用無效的電子郵件地址,也不會「拋出」任何錯誤,儘管您可能會在幾天後收到來自電子郵件服務器的「無法傳送」的郵件。 – Mogsdad

回答

0

兩個GmailApp & MailApp支持發送到多個電子郵件地址,這裏的地址是一個逗號分隔的字符串。我已經嘗試了兩種,在不同的服務上使用3個不同的地址(hotmail,雅虎,私人),他們對我來說工作得很好。

雖然我們可能不知道爲什麼這不適合你,你可以試試這個解決方法。它只是將地址串分成數組,然後爲每個元素髮送一封單獨​​的電子郵件。 (缺點:。這會增加不必要的電子郵件每天數)

var emailArray = email.split(","); 
emailArray.forEach(function (address) { 
    MailApp.sendEmail(address,subject,message); 
}); 

如果你不進用forEach(),這相當於:

var emailArray = email.split(","); 
for (var i=0; i<emailArray.length; i++) { 
    MailApp.sendEmail(emailArray[i],subject,message); 
}; 
+0

我用你的第二個片段來發送電子郵件,我非常感謝它。你介意教育我爲什麼有些人會更喜歡第二種解決方案,而第二種解決方案究竟有什麼不同?我渴望學習這一點。謝謝。 – dericcain

+0

這個例子沒有清楚地顯示,但'forEach'可以更簡潔,因爲它消除了循環計數器和邊界檢查。請閱讀上面鏈接的參考資料,並從microsoft中介紹[this](http://msdn.microsoft.com/zh-cn/library/ie/ff679980%28v=vs.94%29.aspx)。 – Mogsdad

+0

謝謝你的文章。現在更清楚了。 – dericcain

相關問題