8

我在 Google Docs 电子表格中有几个脚本,它们使用 MailApp.sendEmail 发送包含电子表格数据的电子邮件。多年来,他们都工作得非常出色。大约 2 周前,他们停止发送电子邮件。脚本仍在运行,我没有收到任何错误。电子邮件永远不会通过。什么都没有改变,除了电子邮件不再到达。

有什么想法吗?

谢谢!

4

4 回答 4

13

我想我对自己的问题有一个答案,这可能对其有此问题的其他人有所帮助。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 正在按设计工作。

于 2013-07-10T20:50:42.450 回答
2

正如 doebtown 所解释的,MailApp.sendEmail()将拒绝向任何转发到您帐户的地址发送消息。例如,如果您(电子表格的所有者)属于您组织内的组people@myorg.commailApp.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
});

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

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
});

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

于 2016-05-06T05:42:53.520 回答
1

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

于 2013-06-28T02:32:38.857 回答
0

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

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

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

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

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

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

于 2021-01-14T22:42:52.767 回答