2017-07-14 39 views
1

發現這裏的完美腳本: https://github.com/Markei/Google-Forms-Confirmation-and-thank-you-mailer/blob/master/Code.gs谷歌表單電子郵件通知使用別名,而不是Gmail地址

var ADDON_TITLE = 'Confirmation and thank you mailer'; 
 

 
function onOpen(e) { 
 
    FormApp.getUi() 
 
     .createAddonMenu() 
 
     .addItem('Setup', 'showSetup') 
 
     .addItem('About', 'showAbout') 
 
     .addToUi(); 
 
} 
 

 
function onInstall(e) { 
 
    onOpen(e); 
 
} 
 

 
function showSetup() { 
 
    var ui = HtmlService.createHtmlOutputFromFile('Setup') 
 
     .setSandboxMode(HtmlService.SandboxMode.IFRAME) 
 
     .setTitle(ADDON_TITLE); 
 
    //FormApp.getUi().showModalDialog(ui, 'Setup ' + ADDON_TITLE); 
 
    FormApp.getUi().showSidebar(ui); 
 
} 
 

 
function showAbout() { 
 
    var ui = HtmlService.createHtmlOutputFromFile('About') 
 
     .setSandboxMode(HtmlService.SandboxMode.IFRAME) 
 
     .setWidth(420) 
 
     .setHeight(270); 
 
    FormApp.getUi().showModalDialog(ui, 'About ' + ADDON_TITLE); 
 
} 
 

 
function saveSettings(settings) { 
 
    var form = FormApp.getActiveForm(); 
 
    var triggers = ScriptApp.getUserTriggers(form); 
 

 
    // determine if the addon is active 
 
    settings.active = (settings.emailField !== '' && settings.subject !== '' && settings.body !== ''); 
 
    
 
    // save the settings to google service 
 
    PropertiesService.getDocumentProperties().setProperties(settings); 
 
    
 
    // find the current trigger if set 
 
    var trigger = null; 
 
    for (var i = 0; i < triggers.length; i++) { 
 
    if (triggers[i].getEventType() == ScriptApp.EventType.ON_FORM_SUBMIT && triggers[i].getHandlerFunction() === 'respondToFormSubmit') { 
 
     trigger = triggers[i]; 
 
    } 
 
    } 
 
    
 
    // add or remove trigger if needed 
 
    if (settings.active === true && trigger === null) { 
 
    // not found but add-on is active, create 
 
    var trigger = ScriptApp.newTrigger('respondToFormSubmit') 
 
     .forForm(form) 
 
     .onFormSubmit() 
 
     .create(); 
 
    } else if (settings.active === false && trigger !== null) { 
 
    // found but add-on is deactivated, remove 
 
    ScriptApp.deleteTrigger(trigger); 
 
    } 
 
} 
 

 
function getSettings() { 
 
    var settings = PropertiesService.getDocumentProperties().getProperties(); 
 
    settings.active = settings.active || false; 
 

 
    // create a list of all the questions/form items for placeholder insertion in the setup page 
 
    var formQuestions = FormApp.getActiveForm().getItems(); // FormApp.ItemType.TEXT 
 
    settings.formQuestions = []; 
 
    for (var i = 0; i < formQuestions.length; i++) { 
 
    settings.formQuestions.push({ 
 
     title: formQuestions[i].getTitle(), 
 
     id: formQuestions[i].getId(), 
 
     type: formQuestions[i].getType() 
 
    }); 
 
    } 
 
    
 
    // add map of form types 
 
    settings.formTypes = { 
 
    'TEXT': FormApp.ItemType.TEXT 
 
    }; 
 
    
 
    return settings; 
 
} 
 

 
function respondToFormSubmit(e) { 
 
    var settings = PropertiesService.getDocumentProperties(); 
 
    var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); 
 
    // check if authorization is oke 
 
    if (authInfo.getAuthorizationStatus() == ScriptApp.AuthorizationStatus.REQUIRED) { 
 
    sendReauthorizationRequest(); 
 
    return; 
 
    } 
 
    // check if addon is setup 
 
    if (settings.getProperty('active') == false) { 
 
    return; 
 
    } 
 
    // check mail quota 
 
    if (MailApp.getRemainingDailyQuota() == 0) { 
 
    return; 
 
    } 
 

 
    // get form 
 
    var formResponse = e.response; 
 
    var form = FormApp.getActiveForm(); 
 
    
 
    // info for e-mail 
 
    var toAddress = formResponse.getResponseForItem(form.getItemById(settings.getProperty('emailField'))).getResponse(); 
 
    var subject = settings.getProperty('subject'); 
 
    var ccAddresses = settings.getProperty('ccAddress'); 
 
    var message = settings.getProperty('body'); 
 
    var extraOptions = {name: form.getTitle()}; 
 
    
 
    // replace placeholders in subject, cc, message 
 
    for (var i = 0; i < form.getItems().length; i ++) { 
 
    var formItem = form.getItems()[i]; 
 
    subject = subject.replace('{{' + formItem.getId() + ':' + formItem.getTitle() + '}}', formResponse.getResponseForItem(formItem).getResponse()); 
 
    ccAddresses = ccAddresses.replace('{{' + formItem.getId() + ':' + formItem.getTitle() + '}}', formResponse.getResponseForItem(formItem).getResponse()); 
 
    message = message.replace('{{' + formItem.getId() + ':' + formItem.getTitle() + '}}', formResponse.getResponseForItem(formItem).getResponse()); 
 
    } 
 
    
 
    // attach cc if set 
 
    if (ccAddresses !== null && ccAddresses !== '') { 
 
    extraOptions.cc = ccAddresses; 
 
    } 
 
    
 
    // and mail 
 
    MailApp.sendEmail(toAddress, subject, message, extraOptions); 
 
} 
 

 
function sendReauthorizationRequest() { 
 
    var settings = PropertiesService.getDocumentProperties(); 
 
    var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); 
 
    var lastAuthEmailDate = settings.getProperty('lastAuthEmailDate'); 
 
    var today = new Date().toDateString(); 
 
    if (lastAuthEmailDate != today) { 
 
    if (MailApp.getRemainingDailyQuota() > 0) { 
 
     var template = HtmlService.createTemplateFromFile('AuthorizationEmail'); 
 
     template.addon_title = ADDON_TITLE; 
 
     var message = template.evaluate(); 
 
     MailApp.sendEmail(Session.getEffectiveUser().getEmail(), 'Authorization Required for the ' + ADDON_TITLE + ' add-on', message.getContent(), { name: ADDON_TITLE, htmlBody: message.getContent() }); 
 
    } 
 
    settings.setProperty('lastAuthEmailDate', today); 
 
    } 
 
}

但是有人可以告訴我在哪裏,我可以進入我的地址發出的:別名,而不是它使用我的正常電子郵件帳戶發送消息。我正在嘗試創建一個Google表單電子郵件通知,它將表單的副本發送給提交者,並將副本發送給客戶服務,僅保留提交者和客戶服務電子郵件地址而非@ gmail.com地址。

任何幫助將不勝感激!

回答

0

您可以設置發送方和的replyTo地址的名稱如下圖所示:

 MailApp.sendEmail("[email protected]", "email subject", "body of email", { 
 
     name: "mytestname", //the name of the sender 
 
     replyTo: "[email protected]" //the replyto address 
 
    })

+0

這並沒有解決問題,我還在適應從[email protected]域發送電子郵件通過不是[email protected]。我確定gmail帳戶下的自定義別名是正確添加的,所以不確定。我可以使用附加功能,但它有遍佈整個地方的橫幅,但它確實檢測到我的gmail帳戶上的自定義別名併發送來自:該地址正常工作,但由於需要付款才能移除,因此不太喜歡使用它。 – Sadiqul

相關問題