MailApp.sendEmail 方法无法通过正文中包含 URL 的帐户 - 消息已阻止

MailApp.sendEmail method doesn't get through to accounts with URL in the body - Message Blocked

我正在研究 Google Apps 脚本。我正在尝试按如下方式发送电子邮件:

function test_sendmail(){
  var subject = "subject";
  var body = "https://www.google.com/";
  var emailBody = body;
  var options = {
    htmlBody: body
  }

  var recipient = "XXXXXXXXX@gmail.com";

  MailApp.sendEmail(recipient, subject, emailBody, options);
}

"XXXXXXXXX@gmail.com"(电子邮件地址 A)无效,但这只是为了向您展示一个示例。我在 GAS 执行中使用了真实的电子邮件地址。

GAS 执行 运行 由另一个 G-suite 域 google 帐户(电子邮件地址 B)编写代码。

电子邮件地址A在GAS编辑器中对包含上述代码的电子表格具有编辑权限。

但是,上述功能的电子邮件无法通过电子邮件地址 A。我在电子邮件地址 B 中收到了这封电子邮件。

了解更多: https://support.google.com/mail/answer/6596?visit_id=637267406328019079-2003975007&rd=1

然后,我将邮箱地址替换为邮箱地址B,尝试发送,果然发送成功。

其次,我更改了URL部分:

var body = "https://www.google.com/";

至:

var body = "";

然后,邮件成功到达邮箱地址A和B。

结果如下:

发送带有 URL 的电子邮件到电子邮件地址如电子邮件地址 A 的失败最近发生在 1 周或 2 周前。在此之前,这4个案例已经成功完成。我不知道为什么最近开始出现这种情况。

我检查了发件人电子邮件地址 B 是否在收件人电子邮件地址 A 的联系人列表中。

它不在 my contacts 中。

但是我搜索的时候出现了,所以好像在all contacts.


已添加 1 个: 我尝试向电子邮件地址 C 发送电子邮件,这是与电子邮件地址 B 在同一域中的另一个 G-suite 邮件地址,但电子邮件地址 C 没有电子表格和编辑器的权限。

即使它没有电子表格的权限,它也成功发送到电子邮件 C。


已添加 2 个: 我尝试将电子邮件发送到电子邮件地址 D,这是另一个既不是 G-suite 域也不是 @google.com 地址的电子邮件地址。结果与邮箱地址A相同。


Gmail 反垃圾邮件算法很复杂。为防止您的脚本发送的消息被它们阻止,请遵循 Prevent mail to Gmail users from being blocked or sent to spam

上的指南

可能的解决方法

我的一个客户遇到了同样的问题,我用 GmailApp.sendEmail(recipient,subject,body,options) 替换了 MailApp.sendEmail(message) 显然这有效(10 分钟后没有退回消息)

Rafa Guillermo 在评论中添加:

Just want to add that in this case if this is an ongoing issue you should get your admin to contact G Suite support

如果您无法访问 G Suite 支持,我认为您可以使用 Google 反馈将此问题报告给 Google(打开 Gmail 网页 UI > 单击设置按钮(齿轮图标)> 发送反馈)

相关

  • MailApp.sendEmail() in Google Apps Script not sending email(看来这是第一个 Q/A 关于这个问题,还建议用 GmailApp 替换 MailApp)
  • Message blocked when sending email from Google Script