我在 Google Docs 电子表格中有几个脚本,它们使用 MailApp.sendEmail 发送包含电子表格数据的电子邮件。多年来,他们都工作得非常出色。大约 2 周前,他们停止发送电子邮件。脚本仍在运行,我没有收到任何错误。电子邮件永远不会通过。什么都没有改变,除了电子邮件不再到达。
有什么想法吗?
谢谢!
我在 Google Docs 电子表格中有几个脚本,它们使用 MailApp.sendEmail 发送包含电子表格数据的电子邮件。多年来,他们都工作得非常出色。大约 2 周前,他们停止发送电子邮件。脚本仍在运行,我没有收到任何错误。电子邮件永远不会通过。什么都没有改变,除了电子邮件不再到达。
有什么想法吗?
谢谢!
我想我对自己的问题有一个答案,这可能对其有此问题的其他人有所帮助。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 正在按设计工作。
正如 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
});
此电子邮件将发送到您的地址以及您所属的列表。这不是一个完美的解决方案,但如果您不想创建用于管理脚本的特定帐户,这是可行的。
您显然只能向电子表格所属的 gmail/电子邮件帐户发送电子邮件。