我对Google Apps脚本来说是全新的,并且我正在尝试从gmail完成应该是一个相当基本的邮件合并。我已经下载了一个正确工作99%的脚本和模板,但是,它不允许用户调整电子邮件来自的电子邮件地址或帐户。我有几个链接到我的Gmail帐户的电子邮件帐户,此脚本只允许我使用我的gmail域帐户(myname@gmail.com)发送。有没有人知道如何编辑以下代码以允许使用我的替代链接帐户(myname@domain.com)?代码:
function onOpen() {
var mySheet = SpreadsheetApp.getActiveSpreadsheet();
mySheet.addMenu('Mail Merge', [{name:'Send Emails', functionName:'sendEmail'}]);
}
function sendEmail() {
//Get Sheet
var mySheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var rowCount = mySheet.getLastRow();
//Get Basic Email Data
var emSubject = mySheet.getRange('K2').getValue();
var emFromName = mySheet.getRange('K3').getValue();
var emFrom = mySheet.getRange('K4').getValue();
//Build Email Body
var emBody = '';
var textFound = false;
for (var i=rowCount; i>=6; i--) {
var line = mySheet.getRange('J' + i).getValue();
if (line != '' || textFound) {
emBody = line + '<br/>' + emBody;
textFound = true;
}
}
//Process Emails
var remainingQuota = MailApp.getRemainingDailyQuota();
remainingQuota = remainingQuota;
var emailsSent = 0;
for (var i=3; i<=rowCount; i++) {
var emTo = mySheet.getRange('B' + i).getValue();
if (emTo != '' && mySheet.getRange('A' + i).getValue() == '') {
if (remainingQuota > 0) {
//Add Merge Fields To Body
var thisEmBody = emBody;
thisEmBody = thisEmBody.replace(/\[GreetingName\]/g, mySheet.getRange('C' + i).getValue());
thisEmBody = thisEmBody.replace(/\[DATA2\]/g, mySheet.getRange('D' + i).getValue());
thisEmBody = thisEmBody.replace(/\[DATA3\]/g, mySheet.getRange('E' + i).getValue());
thisEmBody = thisEmBody.replace(/\[DATA4\]/g, mySheet.getRange('F' + i).getValue());
thisEmBody = thisEmBody.replace(/\[DATA5\]/g, mySheet.getRange('G' + i).getValue());
thisEmBody = thisEmBody.replace(/\[DATA6\]/g, mySheet.getRange('H' + i).getValue());
//Send Emails
MailApp.sendEmail(emTo, emSubject, thisEmBody, { htmlBody:thisEmBody, name:emFromName, replyTo:emFrom })
mySheet.getRange('A' + i).setValue('Sent');
remainingQuota--;
emailsSent++;
} else {
mySheet.getRange('A' + i).setValue('QUOTA EXCEEDED');
}
SpreadsheetApp.flush();
}
}
Browser.msgBox(emailsSent + ' email' + ((emailsSent!=1)?'s':'') + ' sent.' + ((emailsSent==0) ? ' - Please make sure the status column (A) is empty and there are email addresses in column B' : ''))
}
我已经环顾四周,但无法确定解决方案。任何帮助将不胜感激!
答案 0 :(得分:2)
如果您改为使用GmailApp.sendEmail()
,则可以获得该功能。 See the documentation
您只需向advancedArgs添加from:"yourOtherEmail@domain.com"
。
您可以使用GmailApp.getAliases()
查询可以使用的别名。
答案 1 :(得分:0)
通过阅读您的问题,您的@domain
是@gmail
帐户的别名是不明确的...如果不是,则规则非常简单:使用脚本所有者的帐户发送邮件因此,您唯一需要做的就是在@domain
帐户中创建脚本,邮件将自动从此帐户发送。