MailApp.sendEmail不工作?

时间:2013-06-28 01:21:42

标签: google-apps-script google-docs

我在Google Docs电子表格中有几个脚本,这些脚本使用MailApp.sendEmail发送包含电子表格数据的电子邮件。多年来,他们都做得非常好。大约两周前,他们停止发送电子邮件。脚本仍然运行,我没有任何错误。电子邮件永远不会通过。没有任何改变,只是电子邮件不再到达。

有什么想法吗?

谢谢!

4 个答案:

答案 0 :(得分:7)

我想我对自己的问题有一个答案,这对任何有此问题的人都有帮助。事实上,MailApp.sendEmail似乎仍然有效。改变的是Gmail处理某些类型的邮件的方式。

如果我使用MailApp.sendEmail向第三方发送电子邮件,它就会通过,没问题。正如Fashtas所指出的,如果我使用MailApp.sendEmail向电子表格所属的Gmail帐户发送电子邮件,那就没问题了。

问题在于:如果我使用MailApp.sendEmail将邮件发送到第三方帐户,该帐户会自动转发回电子表格所属的Gmail帐户,则这些邮件将无法通过。

因此,在上面发布的示例代码中,matt @ .com电子邮件地址会自动转发回我的Gmail帐户。 MailApp.sendEmail发送的邮件会通过 .com邮件服务器,但出于某种原因,它们不会转发回我的Gmail收件箱。它们出现在Gmail已发送邮件文件夹中(可能是因为它们是由电子表格所属的Gmail帐户发送的),但它们从未进入收件箱。

这种行为是新的。过去,这些邮件从 * .com服务器转发到我的Gmail收件箱时没有任何问题。我不知道是什么改变导致了这个问题。我不知道如何解决它。

但是,我认为我的问题的答案是MailApp.sendEmail正在按设计工作。

答案 1 :(得分:3)

正如doebtown所解释的那样,mailApp.sendEmail()会拒绝向任何转发到您帐户的地址发送消息。例如,如果您(电子表格的所有者)属于您组织内的 people@myorg.com 组,那么var email = 'people@myorg.com'; var subject = 'The Week Ahead'; var body = 'Hi there!'; var htmlbody = "<p>Hi there!</p>"; // this will not send MailApp.sendEmail(email, subject, body,{ htmlBody : htmlbody }); 邮件将不会传递给 people@myorg.com 。也就是说,以下代码不会发送:

var email = 'myaddress@myorg.com, people@myorg.com';

var subject = 'The Week Ahead';

var body = 'Hi there!';

var htmlbody = "<p>Hi there!</p>";

// this will send to your address and the full list
MailApp.sendEmail(email, subject, body,{
  htmlBody : htmlbody
});

但是,您可以通过将电子邮件附加到地址来解决此问题。

localStorage.setItem('windowscrolltop',$(window).scrollTop());

此电子邮件将发送到您的地址以及您所属的列表。这不是一个完美的解决方案,但如果您不想创建用于管理脚本的特定帐户,则可行。

答案 2 :(得分:2)

您显然只能向电子表格所属的Gmail /电子邮件帐户发送电子邮件。

答案 3 :(得分:0)

有多种方法可以通过 Google App Scripts 发送电子邮件。

  • MailApp:传统方法,但我无法发送一封电子邮件。介绍课程here

  • GmailApp:与 MailApp 相同的方法,但使用以下代码可以发送电子邮件。

    GmailApp.sendEmail(emailList[index], "新邮箱", "新邮箱", {"cc":"XXXXXXX@gmail.com"});

  • 通过服务添加 Gmail API。未探索此选项,但可以在 here 中找到文档。

结论:不要使用MailApp,而是使用GmailApp。