1

问题:有没有办法覆盖帐户电子邮件地址并将其替换为同一帐户上的加号地址?

我在 Google Apps 中使用 GmailApp.sendEmail() 方法。

帐户电子邮件地址是一个非加号(显然)地址,但我使用多个加号地址将邮件过滤到类别中。

当我使用 sendEmail() 发送消息时,它使用主帐户地址,并且似乎没有办法为脚本更改此地址。

虽然我可以为帐户设置“名称”,但我想将发件人地址设置为帐户地址的加号版本。

(我记得在日历用户界面中遇到了同样的问题。)

所以,我也尝试使用高级参数设置一个replyTo 地址。(这不是我喜欢的方式。)

replyTo 参数显然接受地址,并且发送的消息包含reply-to 标头。我在下面的标题行中包含了替换帐户地址的“示例”。

Delivered-To: example+test@gmail.com

Reply-To: Richard Michael <example+pch@gmail.com>

From: Richard Michael <example@gmail.com>
To: example+test@gmail.com

但是,当我在 Gmail 中使用回复按钮时,表单中加载的“收件人”地址是 example+test@gmail.com,这不是我所期望的。(它应该是回复地址,或者最坏的情况是发件人地址。)回复表单中的发件人地址是 example@gmail.com,这是预期的(也是我想从加号地址“发送”的原因)。

我已经重复了几次,结果相同。

当然,Gmail 还允许您在执行验证检查后在用户界面中从外国帐户“发送”。因此,您也不能从这些地址发送。

4

1 回答 1

3

您必须在方法GmailApp.sendEmail中使用参数 from :。

例子

GmailApp.sendEmail('example@exapmle.com', 'Testmail', 'Hello Richard',
                        {name: 'Richard Michel', from: 'example+pch@gmail.com',}); 

我正在使用Mail Merge HD并稍微编辑了代码。

在函数 fnMailmerge() 我添加了行

  top_panel.add(myapp.createLabel("Please select your alias"));
  var lf = myapp.createListBox(false).setWidth(250).setName('from').addItem("Select aliases...").setVisibleItemCount(1);

  for (var i = 0; i < aliases.length; i++) {
   lf.addItem(aliases[i]);
  }

  top_panel.add(lf);

,将最后一条语句添加到这一行(在同一函数中)

var handler = myapp.createServerClickHandler('startMailMerge').addCallbackElement(lb).addCallbackElement(name_box).addCallbackElement(bcc_box).addCallbackElement(lf);

最后编辑功能 Gmail.sendEmail

 GmailApp.sendEmail(rowData.emailAddress, emailSubject, emailText,
                        {name: e.parameter.name, attachments: attachments, htmlBody: emailText, cc: cc, bcc: bcc, inlineImages: inlineImages, from: e.parameter.from,});

这会在邮件菜单中添加一个下拉列表,您可以在其中从注册的别名中进行选择。

于 2012-11-21T17:36:02.563 回答