GmailApp 每次都不会向 gmail 帐户发送电子邮件
GmailApp not sending emails to gmail account every time
我正在使用此代码发送电子邮件(撰写电子邮件内容从 sheet 命名范围获取文本:
//compose issue emails to student and admin
function composeIssueEmail() {
//student's name, last name and email
var email = ss.getRangeByName("CourseProgressEmail").getValue()
var name = ss.getRangeByName("CourseProgressName").getValue()
var lastName = ss.getRangeByName("CourseProgressStudentLastName").getValue()
var subj = ss.getRangeByName("SetUpIssueTitle").getValue()
var subject = subj.replace("*imya*", name)
var bodyText = ss.getRangeByName("SetUpIssueBody").getValue()
var body = bodyText.replace("*imya*", name)
var link = getChecksheetURL()
var text = body.replace("*link*", link)
//send email to student
var studentEmail = sendEmail(email, subject, text)
var adminEmail = "AGcourseSup@gmail.com"
var adminSubj = ss.getRangeByName("SetUpAdminIssueTitle").getValue()
var adminSubject = adminSubj.replace("*imya*", name)
var adminSubjectFinal = adminSubject.replace("*familia*", lastName)
var adminText = ss.getRangeByName("SetUpAdminIssueBody").getValue()
var adminTextReplace = adminText.replace("*imia*", name)
var adminBody = adminTextReplace.replace("*familia*", lastName)
var adminText = adminBody.replace("*link*", link)
//send email to admin
sendEmail(adminEmail, adminSubjectFinal, adminText)
}
//gets current checksheet URL
function getChecksheetURL() {
var Url = ss.getUrl()
var linkMiddle = "#gid="
var sheetID = sheet.getSheetId()
var shecksheetURL = Url + linkMiddle + sheetID
return shecksheetURL
}
//sends emails
function sendEmail(email, subject, body) {
GmailApp.sendEmail(email, subject, body)
}
执行记录:
[19-06-12 16:39:43:396 EEST] 执行成功 [总运行时间 2.399 秒]
它稳定地发送到与spreadsheet相同的gmail帐户。
但是它每隔一段时间发送一次到另一个 gmail 帐户。
详情:
这段代码被执行了(我在这段代码之后记录了一行)
电子邮件在我的出站邮箱中可见,但未到达收件人 gmail 的任何邮箱。
不在垃圾邮件等中
我没有收到任何消息、错误或退回通知。
我改用 MailApp - 它更糟糕,有时甚至不发送到我自己的电子邮件。
我尝试更改设置配置中的内容,但没有找到任何有用的东西。
我设置了过滤器 "never send to spam" 和 "always star it" - 没有用。
我从中删除了一个 link,所以它没有 link - 没用。
有什么解决办法?
我处理了这个问题。问题是关于 anti-spam 过滤器而不是代码。
通过在 GmailApp.sendEmail
方法中添加 "Reply To" 选项,我获得了对电子邮件帐户的更多信任。它神奇地解决了这个问题,现在每封电子邮件都到达了目标。
我正在使用此代码发送电子邮件(撰写电子邮件内容从 sheet 命名范围获取文本:
//compose issue emails to student and admin
function composeIssueEmail() {
//student's name, last name and email
var email = ss.getRangeByName("CourseProgressEmail").getValue()
var name = ss.getRangeByName("CourseProgressName").getValue()
var lastName = ss.getRangeByName("CourseProgressStudentLastName").getValue()
var subj = ss.getRangeByName("SetUpIssueTitle").getValue()
var subject = subj.replace("*imya*", name)
var bodyText = ss.getRangeByName("SetUpIssueBody").getValue()
var body = bodyText.replace("*imya*", name)
var link = getChecksheetURL()
var text = body.replace("*link*", link)
//send email to student
var studentEmail = sendEmail(email, subject, text)
var adminEmail = "AGcourseSup@gmail.com"
var adminSubj = ss.getRangeByName("SetUpAdminIssueTitle").getValue()
var adminSubject = adminSubj.replace("*imya*", name)
var adminSubjectFinal = adminSubject.replace("*familia*", lastName)
var adminText = ss.getRangeByName("SetUpAdminIssueBody").getValue()
var adminTextReplace = adminText.replace("*imia*", name)
var adminBody = adminTextReplace.replace("*familia*", lastName)
var adminText = adminBody.replace("*link*", link)
//send email to admin
sendEmail(adminEmail, adminSubjectFinal, adminText)
}
//gets current checksheet URL
function getChecksheetURL() {
var Url = ss.getUrl()
var linkMiddle = "#gid="
var sheetID = sheet.getSheetId()
var shecksheetURL = Url + linkMiddle + sheetID
return shecksheetURL
}
//sends emails
function sendEmail(email, subject, body) {
GmailApp.sendEmail(email, subject, body)
}
执行记录: [19-06-12 16:39:43:396 EEST] 执行成功 [总运行时间 2.399 秒]
它稳定地发送到与spreadsheet相同的gmail帐户。
但是它每隔一段时间发送一次到另一个 gmail 帐户。
详情:
这段代码被执行了(我在这段代码之后记录了一行)
电子邮件在我的出站邮箱中可见,但未到达收件人 gmail 的任何邮箱。
不在垃圾邮件等中
我没有收到任何消息、错误或退回通知。
我改用 MailApp - 它更糟糕,有时甚至不发送到我自己的电子邮件。
我尝试更改设置配置中的内容,但没有找到任何有用的东西。
我设置了过滤器 "never send to spam" 和 "always star it" - 没有用。
我从中删除了一个 link,所以它没有 link - 没用。
有什么解决办法?
我处理了这个问题。问题是关于 anti-spam 过滤器而不是代码。
通过在 GmailApp.sendEmail
方法中添加 "Reply To" 选项,我获得了对电子邮件帐户的更多信任。它神奇地解决了这个问题,现在每封电子邮件都到达了目标。