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
我正在研究 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