[英]Is there any way to mail merge with my own domain name instead Gmail
這里我想做的是:
var first = 0;
var last = 1;
var email = 2;
var emailTemp = HtmlService.createTemplateFromFile("email");
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NAJ");
var data = ws.getRange("A2:C" + ws.getLastRow()).getValues();
data.forEach(function(row){
emailTemp.fn = row[first];
emailTemp.ln = row[last];
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.sendEmail(row[email], "Important Test", "Your email does not support HTML.",
{name: "Email App", htmlBody: htmlMessage}
);
});
}
我唯一需要做的就是更改發送 email 地址。 任何幫助將不勝感激。 原諒我的英語不好
您的目標是從特定的 email 帳戶發送電子郵件,而不考慮當前正在執行腳本的 email 帳戶。
方法一:
可安裝觸發器始終在創建它們的人的帳戶下運行。 例如,如果您創建一個可安裝的打開觸發器,它會在您的同事打開文檔時運行(如果您的同事具有編輯權限),但它會作為您的帳戶運行。 這意味着,如果您創建觸發器以在打開文檔時發送 email,則始終從您的帳戶發送 email,而不必是打開文檔的帳戶。
這里的想法是從xyz@domainname.com
創建一個可安裝的onEdit
觸發器,這樣每當其他電子郵件編輯特定單元格時,就會發送電子郵件。
這種方法的局限性在於,我們需要確保在真正需要時觸發代碼,而不是在每次編輯單元格時觸發。 我們可以創建一個復選框,然后單擊復選框(無論哪個帳戶執行此操作),然后腳本將被執行,電子郵件將由創建可安裝觸發器的 email 帳戶發送。
方法二:
創建 email 別名。 這是有關如何執行此操作的官方文檔,並且此線程可能對以編程方式創建它們很有用。 此處的限制是,要添加 email 別名,您必須是 Google Workspace 管理員。
解決方案1:
在工作表NAJ的單元格D1中創建一個復選框。 單元格由您決定,但您需要相應地調整腳本。
更改 function 的名稱以添加事件 object 。 這將允許我們獲取編輯信息,例如編輯了哪個單元格。
新的 function 將是:
function myInstallableOnEditFunction(e) {
const arng = e.range;
if(arng.getSheet().getName()=="NAJ" && arng.getA1Notation()=='D1' && arng.getValue()==true){
var first = 0;
var last = 1;
var email = 2;
var emailTemp = HtmlService.createTemplateFromFile("email");
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NAJ");
var data = ws.getRange("A2:C" + ws.getLastRow()).getValues();
data.forEach(function(row){
emailTemp.fn = row[first];
emailTemp.ln = row[last];
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.sendEmail(row[email], "Important Test", "Your email does not support HTML.",
{name: "Email App", htmlBody: htmlMessage}
);
});
}
}
最后,從xyz@domainname.com
帳戶創建一個可安裝的onEdit
觸發器 function。 您可以從當前項目的觸發菜單中手動執行此操作,也可以通過編程方式執行此操作。
之后,在任何帳戶單擊單元格D1后,電子郵件將通過xyz@domainname.com
發送。
解決方案2:
創建 email 別名后(參見方法 2 ),您可以使用getAliases()方法,這是一個示例腳本。 我沒有自己測試過,但你也可以探索這種可能性。
// Log the aliases for this Gmail account and send an email as the first one.
var me = Session.getActiveUser().getEmail();
var aliases = GmailApp.getAliases();
Logger.log(aliases);
if (aliases.length > 0) {
GmailApp.sendEmail(me, 'From an alias', 'A message from an alias!', {'from': aliases[0]});
} else {
GmailApp.sendEmail(me, 'No aliases found', 'You have no aliases.');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.