2017-07-04 24 views
-1

我希望將Google表單的內容發送到我的電子郵件,而不僅僅是通知新用戶提交表單。我輸入了下面的代碼。但我收到一個迴應,說namedValues是未定義的。我嘗試提交一個虛擬的Google表單,但它仍然不會將電子郵件中的Google表單的內容發送給我。 function sendFormByEmail(e){ var email =「[email protected]」;在用戶提交Google表單後,通過電子郵件獲取Google表單的內容

var Name = e.values[3]; 
var EmailAddress = e.values[4]; 
var txt = ""; 
for(var field in e.namedValues) { 
txt += field + ' :: ' + e.namedValues[field].toString() + "\n\n"; 
} 
MailApp.sendEmail(email, "New Client", txt); 
} 

回答

1

如果腳本附加到表單並在提交表單時觸發,請使用該事件的response object。 AFAIK您嘗試訪問的namedValues對象僅在您的腳本附加到接收表單輸入的電子表格時纔可用。

function onFormSubmit_sendEmail(e) { 
    var msgBody = ""; 
    var itemResponses = e.response.getItemResponses(); 
    for (var i = 0; i < itemResponses.length; i++) { 
    var itemResponse = itemResponses[i]; 
    msgBody = msgBody + itemResponse.getItem().getTitle() + ": " + itemResponse.getResponse() + "\n\n"; 
    } 
    MailApp.sendEmail("[email protected]", "Form Submission", msgBody); 
    } 
} 

您可以使用的一些測試:

當我想快速發送一個簡單的表格提交的電子郵件地址(而不是使用可以做到這一點,更多的插件),我使用這個腳本項目標題(getTitle() method)根據問題做不同的事情 - 例如如果有一個問題是您想要發送電子郵件的地方,請執行以下操作:

if (itemResponse.getItem().getTitle() == "Recipient Address") { 
    var email = itemResponse.getResponse(); 

然後,您可以使用該MailApp.sendMail()函數。希望這可以幫助。

相關問題