gpt4 book ai didi

使用 MailApp.sendEmail 时电子邮件被拒绝

转载 作者:行者123 更新时间:2023-12-03 14:49:49 30 4
gpt4 key购买 nike

我对 MailApp.sendEmail() 有疑问.
我尝试通过 Google 电子表格中的脚本发送电子邮件。我的脚本适用于我的帐户,但不适用于我 friend 的帐户。我收到这条消息:

Message rejected. See https://support.google.com/mail/answer/69585 for more information.Final-Recipient: rfc822; xx@xx.xxAction: failedStatus: 5.0.0Diagnostic-Code: smtp; Message rejected. See https://support.google.com/mail/answer/69585 for more information.Last-Attempt-Date: Wed, 21 Mar 2018 05:41:31 -0700 (PDT)


我使用了 Martin Hawksey 教程脚本(有一些修改):
var TO_ADDRESS = "xxx@gmail.com";

// spit out all the keys/values from the form in HTML for email
function formatHtmlMailBody(obj, order) {
var result = "html text";
// loop over all keys in the ordered form data
for (var idx in order) {
var key = order[idx];
result += key + " " + obj[key];
}
return result;
}

function formatTextMailBody(obj, order) {
var result = "text";
for (var idx in order) {
var key = order[idx];
result += key + "\n" + obj[key] + "\n\n";
}
return result;
}

function doPost(e) {

try {
Logger.log(e); // the Google Script version of console.log see: Class Logger
record_data(e);

var mailData = e.parameters;

var dataOrder = JSON.parse(e.parameters.formDataNameOrder);

var sendEmailTo = (typeof TO_ADDRESS !== "undefined") ? TO_ADDRESS : mailData.formGoogleSendEmail;
MailApp.sendEmail(
String(sendEmailTo),
'title',
formatTextMailBody(mailData, dataOrder), { // body
htmlBody: formatHtmlMailBody(mailData, dataOrder), // advanced options
name: "name",
replyTo: String(mailData.Email)
}
);
//second mail
try {
var htmlBodyToSender = "html text";
var textBodyToSender = "text";
MailApp.sendEmail(
String(mailData.Email), //to
'title', //subject
textBodyToSender, { // body
htmlBody: htmlBodyToSender, // advanced options
name: "name",
replyTo: String(sendEmailTo)
}
);
}
catch (error) {
Logger.log(error);
}

return ContentService // return json success results
.createTextOutput(
JSON.stringify({
"result": "success",
"data": JSON.stringify(e.parameters)
}))
.setMimeType(ContentService.MimeType.JSON);
} catch (error) { // if error return this
Logger.log(error);
return false;
}
}

最佳答案

交货状态通知
消息内容由"An Extensible Message Format for Delivery Status Notifications" 管理因为它是失败电子邮件的传递状态通知 (DSN)。让我们逐字段解析错误消息:

  • 最终收件人:rfc822 ; xx@xx.xx - 在转发或网关的所有修改之后,只是一个指向接收者类型和地址的指针。
  • 行动:失败 - 表示交付状态的枚举,可以是 failed , delayed , delivered , relayed , 或 expanded .在您的情况下,它表明电子邮件未能送达。
  • 状态:5.0.0 - 电子邮件传递状态代码由 RFC 3463 管理,以及 500错误仅表示“其他或未定义的协议(protocol)状态”,无需进一步说明。
  • 诊断代码:smtp; - 包含失败的类型和原因(仅存在于具有 faileddelayed 值的“操作”字段)。在您的情况下没有什么太具体的,谷歌只是指出可能的反弹原因列表。
  • 最后尝试日期:2018 年 3 月 21 日,星期三 05:41:31 -0700 (PDT) - 最后,该字段包含最后一次尝试引用标准“中继、网关或传递”电子邮件的时间戳。

  • 问题
    从上面可以看出,该错误并不意味着您的代码有任何问题。这也解释了为什么脚本对某些帐户“有效”:问题出在 Google 的基础架构或预期收件人的安全配置上。
    由于第一个通常伴随着更具体的 DSN,因此您应该检查受影响帐户的电子邮件安全配置。如果一切正常,请切换到 GmailApp的类似 sendEmail 为您提供更细粒度控制的方法或使用 advanced service它允许您从头开始构建消息。

    关于使用 MailApp.sendEmail 时电子邮件被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49407057/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com