Mar*_*ski 6 email google-apps-script gmail-api
我有问题MailApp.sendEmail()
。我尝试通过 Google 电子表格中的脚本发送电子邮件。我的脚本适用于我的帐户,但不适用于我朋友的帐户。我收到这条消息:
消息被拒绝。有关详细信息,请参阅https://support.google.com/mail/answer/69585。最终收件人:rfc822;xx@xx.xx 操作:失败状态:5.0.0 诊断代码:smtp;消息被拒绝。有关详细信息,请参阅https://support.google.com/mail/answer/69585。上次尝试日期:2018 年 3 月 21 日星期三 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;
}
}
Run Code Online (Sandbox Code Playgroud)
快递状态通知
消息内容受“传递状态通知的可扩展消息格式”管辖,因为它是失败电子邮件的传递状态通知 (DSN)。我们逐个字段解析错误消息:
failed
、delayed
、、 或。在您的情况下,它表明电子邮件未能送达。delivered
relayed
expanded
500
错误仅表示“其他或未定义的协议状态”,无需进一步说明。failed
或delayed
值的“操作”字段出现)。您的情况没有什么太具体的,谷歌只是指出了可能的退回原因列表。问题
从上面可以看出,该错误并不意味着您的代码有任何问题。这也解释了为什么该脚本对某些帐户“有效”:问题要么出在 Google 的基础设施上,要么出在预期接收者的安全配置上。
由于第一个通常伴随有更具体的 DSN,因此您应该检查受影响帐户的电子邮件安全配置。如果一切看起来正常,请切换到 的GmailApp
类似sendEmail
方法,为您提供更细粒度的控制,或使用高级服务,让您从头开始构建消息。
归档时间: |
|
查看次数: |
741 次 |
最近记录: |