Google apps script 使用sendEmail时是否可以更改发件人地址?
我想知道是否有任何选项可以更改使用MailApp.sendEmail发送的电子邮件的发件人地址 我构建了一个发布为Web应用程序的表单。学生填写并提交表格,并收到电子邮件。我知道如何更改电子邮件的回复地址和发件人姓名。我知道电子邮件使用我的地址作为发件人地址,因为我是脚本的所有者,应用程序以我的身份运行 是否有任何方法将发件人地址设置为属于另一个人(在本例中为讲师)?我认为实现这一点的一种方法是让他成为脚本所有者,并指导他为我们重新发布应用程序,但我不想把它交给他。(据我所见,只有脚本所有者才能发布脚本。) 换句话说,我希望From地址代表为其创建脚本的客户机,而不是编写脚本的程序员 我明白,允许脚本发送来自太阳下任何人的电子邮件不是一个理想的功能。我只是想知道是否有人对如何解决我的问题有建议Google apps script 使用sendEmail时是否可以更改发件人地址?,google-apps-script,Google Apps Script,我想知道是否有任何选项可以更改使用MailApp.sendEmail发送的电子邮件的发件人地址 我构建了一个发布为Web应用程序的表单。学生填写并提交表格,并收到电子邮件。我知道如何更改电子邮件的回复地址和发件人姓名。我知道电子邮件使用我的地址作为发件人地址,因为我是脚本的所有者,应用程序以我的身份运行 是否有任何方法将发件人地址设置为属于另一个人(在本例中为讲师)?我认为实现这一点的一种方法是让他成为脚本所有者,并指导他为我们重新发布应用程序,但我不想把它交给他。(据我所见,只有脚本所有者才能
谢谢 谷歌在这一点上并不灵活-你能看到的唯一“发件人”地址是属于运行脚本的用户的地址 你可以使用一个“机器人”谷歌账户,比如
DepartmentRobot@ourdomain.com
。您可以自己开发脚本,然后从robot重新发布它们
在Google Apps域中,如果需要,管理员可以创建此psuedo用户并编辑设置以将其从Google Apps目录中隐藏
学生收到的电子邮件不会来自他们的讲师,但也不会来自您。如果您使用GMailApp.sendMail(而不是MailApp.sendMail),则可以指定发件人作为可选的附加参数:
我相信你只能指定你已经配置好Gmail帐户的别名。是的,你可以,而且很简单。如果您有多个别名,请使用日志确定您的别名在阵列中的位置。然后,要测试您是否具有正确的阵列位置,请在日志中使用它
var aliases = GmailApp.getAliases()
Logger.log(aliases); //returns the list of aliases you own
Logger.log(aliases[0]); //returns the alias located at position 0 of the aliases array
GmailApp.sendEmail('person@aol.com','From an alias', 'A message from an alias!', {'from': aliases[0]});
我想在此基础上再接再厉,但我还不能发表评论
正如克里斯布所说:
然后编写Google Apps脚本来处理发送到该别名的电子邮件,这样来自讲师的电子邮件会显示在您的收件箱中,而来自其他任何人的电子邮件会被转发到讲师,并且“replyTo”字段设置为发送电子邮件的人。只有在您将别名添加到您想要发送邮件的帐户中时才有可能 重要提示:应手动将别名添加到所需帐户中(在Gmail中,请转到“设置”,然后转到“帐户”,然后转到“发送方式”) 当您这样做时,您必须在名为“GmailApp.sendmail()的脚本中使用GmailApp方法” 首先,您必须从Gmail帐户中读取别名:
var myAliases=GmailApp.getAliases()代码>
假设您只有一个别名,那么第一个别名将位于indexd 0->myAlias[0]
在这种情况下,您可以使用如下方法:
GmailApp.sendEmail('recipient@yourdomain.con', 'subject', 'body', {from: myAliases[0], name:'Name of the Alias'});
就是这样。为了进一步利用@RAWdaMedia和@mickolasjae answers,如果您想使用别名电子邮件发送html电子邮件,您可以这样做
// this should contain data to be put in the variable in your html
var data = [data1, data2];
var html = HtmlService.createTemplateFromFile('your-html-file-name');
html.data = data;
var template = html.evaluate().getContent();
var subjectLine = "Your subject line";
var aliases = GmailApp.getAliases()
// this line sends the email using alias email
GmailApp.sendEmail(email, subjectLine, template, {from: aliases[0], htmlBody: template});
需要注意的几点:
在Gmail设置中,确保您要使用的电子邮件别名未标记为默认别名
如果您有多个电子邮件别名,请检查要使用的电子邮件别名的索引,并相应地更改别名的索引,因此它可能是别名[1]
或别名[2]
我不确定,但我认为这可能对你的问题有用。
我已经寻找了几个小时的解决方案,一个完全陌生的人可以代表你发送邮件,但通过谷歌脚本,但它没有工作
尽管您可以更改代码并将整个代码放入if循环,若特定工作表的特定单元格具有特定单词,则程序将运行或退出
如果程序在最后运行它,您可以输入命令清除该单元格
然后,您可以指示用户将表1的A1设置为“发送”
并行设置时间驱动触发器,使其每分钟运行一次
所以,在提交一分钟后,您将收到来自您的ID的邮件,猜猜这一次该用户甚至不需要登录google帐户
您可以要求用户检查工作表右上角是否有其他人在线。如果是这样的话,他们可以稍后再来。这种方法有点粗糙,但很有效
我是新来的。您可以通过使用{from:'来使用设置为运行脚本的帐户别名的任何电子邮件otheremail@example.com'}在可选参数中。这并不能解决这里要求的用例,但很高兴知道。{from:'我的-aliases@host.com“}
对我没有任何影响,也没有记录在:-(你能澄清一下“重新发布”是什么意思吗?”robot帐户中的脚本?只是澄清一下:要使用'from:'参数,您必须使用GmailApp.sendEmail.MailApp.sendEmail。工作表的所有者还必须在GMail的设置屏幕中手动添加您要用作别名的电子邮件地址。请求是“从其他人发送的”,别名不是另一个人。这不是一个有效的答案。如果用户计划以另一个人的身份发送电子邮件,我假设他们会授予他们别名权限。你能确认这是否有效吗?我有一个合法的别名设置,尽管在“发件人”字段中使用了该设置,但它仍然来自我的主帐户。当你单击“答复”时,它是否会通过我的主帐户发送使用正确/预期的地址填充字段?仅因为我将replyTo:字段设置为(似乎确实有效:-),我才能确认该工作