通过 Gmail 网站发送草稿时,如何在 GmailApp.createDraft() 创建的 Gmail 草稿中保留回复设置?
How can I keep the Reply-To setting in Gmail drafts created by GmailApp.createDraft() when sending the draft via Gmail website?
作为在 Gmail 上发送大量电子邮件的一部分,我想根据收件人 using Gmail's alias feature 和 Google Apps 脚本配置回复地址。
我遇到了一个问题,即在尝试通过 Gmail 网站发送创建的草稿时,由 Google Apps 脚本创建的 Gmail 草稿中的回复设置被禁用(无效),我想知道如果有人可以帮助我解决问题。
正在复制
我的脚本如下所示。为了提供示例,我的 Gmail 帐户是 me@gmail.com
:
var subject = 'An Eye-catching Email Subject';
var recipients = [{
email: 'mail1@sample.com',
replyTo: 'me+asia@gmail.com',
body: 'email text for mail1@sample.com'
},
{
email: 'mail2@example.com',
replyTo: 'me+europe@gmail.com'
body: 'email text for mail2@example.com'
}
// which goes on for an order of under 100 recipients
];
recipients.forEach(recipient => GmailApp.createDraft(recipient.email, subject, recipient.body, {
replyTo: recipient.replyTo
}));
当我在 Gmail 网站上打开其中一封创建的草稿邮件,然后点击 Send
按钮发送邮件时,发送的电子邮件设置为回复 me@gmail.com
而不是指定回复别名,如 me+asia@gmail.com
.
备选方案
如果我使用上面使用的sendEmail()
method instead of the createDraft()
,一切正常。指定的 replyTo
选项反映在实际发送的电子邮件中。
我使用 createDraft()
而不是 sendEmail()
的唯一原因是在创建草稿后,我想确保一切正常,然后再单独点击 Send
按钮.我知道我应该忘记使用 createDraft()
;我只是想不通 Google 打算用 createDraft()
的 replyTo
选项做什么,如果有人知道我在坚持 createDraft()
时可以采取的其他解决方案, 感激不尽
问题和解决方法:
在我的环境中,我遇到过同样的情况。当时确认了以下情况
- 当在 Gmail UI 中的浏览器中手动发送草稿邮件时,
Reply-To
从草稿邮件的 header 中删除,草稿邮件被发送。
- 当我看到草稿消息时,
Reply-To
包含在 header 中。
- 当使用
GmailApp.getDraft(id).send()
等脚本发送包含 Reply-To
的草稿消息时,通过在 header 中包含 Reply-To
来发送消息。这与 GmailApp.sendEmail()
. 的情况相同
从上述情况来看,作为一个简单的解决方法,使用如下脚本发送草稿消息怎么样?
- 创建消息草稿。
- 确认每条消息草稿。
- 这是你问题中的
The only reason that I use createDraft() instead of sendEmail() is that after the drafts are created, I want to make sure everything is alright before hitting the Send button, individually.
。
- 当您在草稿消息中发现修改点时,请修改and/or删除它们。
- 在您确认所有草稿消息后,当您要发送它们时,您可以使用脚本发送它们。
当上述变通方法反映到脚本中时,它变成如下。
示例脚本:
function myFunction() {
GmailApp.getDrafts().forEach(e => e.send());
}
- 当此脚本为运行时,发送当前所有草稿邮件。请注意这一点。
注:
当草稿中有一些你不想发的草稿时,比如我觉得用星标过滤也可以实现。当你想发送带星标的消息草稿时,你也可以使用下面的脚本。
GmailApp.getDrafts().forEach(e => {
if (e.getMessage().isStarred()) e.send();
});
参考:
作为在 Gmail 上发送大量电子邮件的一部分,我想根据收件人 using Gmail's alias feature 和 Google Apps 脚本配置回复地址。
我遇到了一个问题,即在尝试通过 Gmail 网站发送创建的草稿时,由 Google Apps 脚本创建的 Gmail 草稿中的回复设置被禁用(无效),我想知道如果有人可以帮助我解决问题。
正在复制
我的脚本如下所示。为了提供示例,我的 Gmail 帐户是 me@gmail.com
:
var subject = 'An Eye-catching Email Subject';
var recipients = [{
email: 'mail1@sample.com',
replyTo: 'me+asia@gmail.com',
body: 'email text for mail1@sample.com'
},
{
email: 'mail2@example.com',
replyTo: 'me+europe@gmail.com'
body: 'email text for mail2@example.com'
}
// which goes on for an order of under 100 recipients
];
recipients.forEach(recipient => GmailApp.createDraft(recipient.email, subject, recipient.body, {
replyTo: recipient.replyTo
}));
当我在 Gmail 网站上打开其中一封创建的草稿邮件,然后点击 Send
按钮发送邮件时,发送的电子邮件设置为回复 me@gmail.com
而不是指定回复别名,如 me+asia@gmail.com
.
备选方案
如果我使用上面使用的sendEmail()
method instead of the createDraft()
,一切正常。指定的 replyTo
选项反映在实际发送的电子邮件中。
我使用 createDraft()
而不是 sendEmail()
的唯一原因是在创建草稿后,我想确保一切正常,然后再单独点击 Send
按钮.我知道我应该忘记使用 createDraft()
;我只是想不通 Google 打算用 createDraft()
的 replyTo
选项做什么,如果有人知道我在坚持 createDraft()
时可以采取的其他解决方案, 感激不尽
问题和解决方法:
在我的环境中,我遇到过同样的情况。当时确认了以下情况
- 当在 Gmail UI 中的浏览器中手动发送草稿邮件时,
Reply-To
从草稿邮件的 header 中删除,草稿邮件被发送。 - 当我看到草稿消息时,
Reply-To
包含在 header 中。 - 当使用
GmailApp.getDraft(id).send()
等脚本发送包含Reply-To
的草稿消息时,通过在 header 中包含Reply-To
来发送消息。这与GmailApp.sendEmail()
. 的情况相同
从上述情况来看,作为一个简单的解决方法,使用如下脚本发送草稿消息怎么样?
- 创建消息草稿。
- 确认每条消息草稿。
- 这是你问题中的
The only reason that I use createDraft() instead of sendEmail() is that after the drafts are created, I want to make sure everything is alright before hitting the Send button, individually.
。
- 这是你问题中的
- 当您在草稿消息中发现修改点时,请修改and/or删除它们。
- 在您确认所有草稿消息后,当您要发送它们时,您可以使用脚本发送它们。
当上述变通方法反映到脚本中时,它变成如下。
示例脚本:
function myFunction() {
GmailApp.getDrafts().forEach(e => e.send());
}
- 当此脚本为运行时,发送当前所有草稿邮件。请注意这一点。
注:
当草稿中有一些你不想发的草稿时,比如我觉得用星标过滤也可以实现。当你想发送带星标的消息草稿时,你也可以使用下面的脚本。
GmailApp.getDrafts().forEach(e => { if (e.getMessage().isStarred()) e.send(); });