Google apps script 通过HTML表单制作和发送电子邮件

Google apps script 通过HTML表单制作和发送电子邮件,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一份员工总记录表。 我想通过HTML表单(单击菜单项时)从任意行发送电子邮件。 我想要一个主题字段(文本框)和消息字段(段落)。 在这两个字段中输入数据后,电子邮件应转到存储在G列中的员工电子邮件ID的电子邮件(以及存储在其他列中的一些其他数据),并且“主题”(电子邮件的主题)必须存储在Y列中。 我在各种论坛上搜索并尝试了许多代码。(像)。但是,他没有成功。我需要帮助 样本表 我试过的代码: // // function send_email() { var ss = Spreadsh

我有一份员工总记录表。 我想通过HTML表单(单击菜单项时)从任意行发送电子邮件。 我想要一个主题字段(文本框)和消息字段(段落)。 在这两个字段中输入数据后,电子邮件应转到存储在G列中的员工电子邮件ID的电子邮件(以及存储在其他列中的一些其他数据),并且“主题”(电子邮件的主题)必须存储在Y列中。 我在各种论坛上搜索并尝试了许多代码。(像)。但是,他没有成功。我需要帮助

样本表

我试过的代码:

//
//
function send_email() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();  
  var empsht = ss.getSheetByName("Emp");  
  var currentRow = empsht.getActiveSelection().getRowIndex();
  var empvals = empsht.getRange("A"+currentRow+":B"+currentRow).getValues();
  var html = HtmlService.createHtmlOutputFromFile('index')
    .setSandboxMode(HtmlService.SandboxMode.NATIVE);
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
    .showModalDialog(html, 'Send an Email to ' + empvals[0][1]);
}
//
//
function send_now() {
  var ss = SpreadsheetApp.getActiveSheet();
  var empsht = ss.getSheetByName("Emp");  
  var currentRow = empsht.getActiveSelection().getRowIndex();
  var empvals = empsht.getRange("F"+currentRow).getValue();
  MailApp.sendEmail({        to: empvals[0][0],        subject: subject1,        htmlBody: message      });
return data;
}
//
//


//index.html

<br>
Subject       : <input type="text" />
<br>

<br>
Body of email : <input type="text" />
<br>

<br>
<input type="button" value="Send Email" onclick='send_now()'/>

window.getSheetData = function() {

  google.script.run.withSuccessHandler(onSuccess)
    .send_now();
}
</script>

//
//
函数send_email(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var empsht=ss.getSheetByName(“Emp”);
var currentRow=empsht.getActiveSelection().getRowIndex();
var empvals=empsht.getRange(“A”+currentRow+”:B“+currentRow).getValues();
var html=HtmlService.createHtmlOutFromFile('索引')
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
SpreadsheetApp.getUi()//或DocumentApp或FormApp。
.showmodaldiallog(html,“发送电子邮件至”+empals[0][1]);
}
//
//
函数send_now(){
var ss=SpreadsheetApp.getActiveSheet();
var empsht=ss.getSheetByName(“Emp”);
var currentRow=empsht.getActiveSelection().getRowIndex();
var empvals=empsht.getRange(“F”+currentRow).getValue();
MailApp.sendmail({to:empvals[0][0],主题:subject1,htmlBody:message});
返回数据;
}
//
//
//index.html

主题:

电子邮件正文:

window.getSheetData=函数(){ google.script.run.withSuccessHandler(onSuccess) .send_now(); }
函数发送电子邮件(){
var html='
主题:
电子邮件正文:
; html+=''; html+='function sendNow(){google.script.run.withSuccessHandler(function(msg){document.getElementById(“msg”).innerHTML=msg;}).send_现在({body:document.getElementById(“bod”).value,subject:document.getElementById(“sub”).value}); SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html),“电子邮件表单”); } 立即发送功能(obj){ var empsh=SpreadsheetApp.getActiveSheet(); var currentRow=empsh.getActiveRange().getRow(); var empval=empsh.getRange(currentRow,6.getValue(); console.log('电子邮件:%s\n对象:%s\n消息:%s',日期,对象主题,对象正文); //MailApp.sendmail({to:empval,subject:obj.subject,htmlBody:obj.body}); 返回“已发送电子邮件”; }
动画:

此版本使用文本区域:

function send_email() { 
  var html= '<br />Subject: <input type="text" id="sub" /><br />Body of Email: <textarea rows="4" columns="30" id="bod"></textarea><br /><input type="button" value="Send Email" onclick="sendNow()"/>';
  html+='<div id="msg"></div>';
  html+='<script>function sendNow(){google.script.run.withSuccessHandler(function(msg){document.getElementById("msg").innerHTML=msg;}).send_now({body:document.getElementById("bod").value,subject:document.getElementById("sub").value});}</script>';
  SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html), "Email Form");
}
函数send_email(){
var html='
主题:
电子邮件正文:
; html+=''; html+='function sendNow(){google.script.run.withSuccessHandler(function(msg){document.getElementById(“msg”).innerHTML=msg;}).send_现在({body:document.getElementById(“bod”).value,subject:document.getElementById(“sub”).value}); SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html),“电子邮件表单”); }
它几乎完美无瑕。我无法通过var html='
获取邮件正文的“段落”:电子邮件主题:


邮件正文:


,我希望在单击“发送电子邮件”后关闭html对话。
function send_email() { 
  var html= '<br />Subject: <input type="text" id="sub" /><br />Body of Email: <textarea rows="4" columns="30" id="bod"></textarea><br /><input type="button" value="Send Email" onclick="sendNow()"/>';
  html+='<div id="msg"></div>';
  html+='<script>function sendNow(){google.script.run.withSuccessHandler(function(msg){document.getElementById("msg").innerHTML=msg;}).send_now({body:document.getElementById("bod").value,subject:document.getElementById("sub").value});}</script>';
  SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html), "Email Form");
}