2014-06-09 2 views
0

버튼이 포함 된 메일 본문에 html 양식을 보내고 버튼을 클릭하면 Google 스프레드 시트에 참조가 저장됩니다. 나는 코드를 얻을 수 있었고 문제를 해결하는데 도움이되지 않았다.Google App Script - 메일 본문의 콜백

//Function to send mail from Google App script 
function sendmail(e) { 
var subject = 'Test'; 

var template = HtmlService.createHtmlOutput('<form id = "myForm" >' + 
'<label for = "name"> Name: </label>'+ 
'<input type = "text" id ="name" />'+ 
'</Form>'+ 
'<button onclick = "submitdata()">Save</button>' + 
'<script>' + 
'function submitdata(){'+ 
'var form = document.getElementByID('+"myform"+');'+ 
'google.script.run.withFailureHandler(alert).withSuccessHandler(alert).' + 
'submitForm(form);'+ 
'}'); 
var html = template.getContent(); 
// email to self 
recipient = Session.getActiveUser().getEmail(); 
var Mailbody= 'Its a test: ' 
// Send email form 
GmailApp.sendEmail(recipient, subject, Mailbody, {htmlBody:html}); 
} 


//Function to be called when clicked on Save button in Email body 

function submitForm(form) { 
var ss =SpreadsheetApp.openById('tsgxsbtJRf2zbh_tNQzJoUQ'); 
var sheet = ss.getSheets()[0]; 
// Save response to spreadsheet 
var rowNum = sheet.getLastRow()+1; 
//sheet.getRange(rowNum, 1, 1, row.length).setValues([row]); 
sheet.getRange("A"+ rowNum).setValue("today") 
} 

답변

0

내가 아는 없음 이메일 클라이언트는 기존의 (예를 들어, 전망) 또는 온라인 (예를 들어, Gmail은) HTML에 포함 된 자바 스크립트 코드를 실행합니다.

일부 클라이언트의 경우 사용자가 필드를 채우고 제출 버튼을 클릭하면 브라우저에 양식을 직접 게시하는 새 탭을 트리거 할 수 있도록 양식에 일반 게시물 URL이 포함됩니다. 그러나 또 다시, 이것은 일부 이메일 클라이언트에서만 작동합니다. 예를 들어 Outlook에서이 기능이 작동하지 않는다고 생각합니다.

그런 경우 사용자가 온라인에서 양식을 열 수 있도록 링크를 보내는 것이 가장 좋습니다.

+1

js가 실행되는 경우에도 htmlapp 외부에서 작동하지 않는 google.script를 호출합니다. –

+0

Thanks @ZigMandel –

+0

고마워요 @Henrique Abreu가 URLalternative를 올리려고 논리를 변경하려고합니다. – user3721999

관련 문제