我有一个可以从Google表格发送电子邮件的功能。我想在Google工作表的侧边栏选项中编写电子邮件的主题和正文,然后单击“发送”,并将主题和正文作为变量传递给服务器端函数以发送电子邮件。
我希望我能够清楚地解释我的要求。我几乎没有编程知识,所以请原谅。我在下面有当前的代码,任何改进或修正都将不胜感激。
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Email')
.addItem('Remaining Email Quota', 'emailQuota')
.addSeparator()
.addItem('Send Email', 'sideBar')
.addToUi();
}
function sendEmail(formSubject,formBody){
var app = SpreadsheetApp;
var sheet = app.getActiveSheet();
var lastRow = sheet.getLastRow();
for (var i = 5; i <=lastRow;i++){
var currentEmail = sheet.getRange(i,4).getValue();
var emailConfirm = sheet.getRange(i,1).getValue();
if(emailConfirm == "Yes"){
if(currentEmail !=""){
MailApp.sendEmail(currentEmail, formSubject, formBody);
}
}
}
}
function sideBar(){
var html = HtmlService.createHtmlOutputFromFile('sideBarEmail')
.setTitle('Email Subject & Body').setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(400);
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showSidebar(html);
}
下面的HTML部分__________________________________________
> <base target="_top">
> <script>
> function onSuccessSubject(getSubject){ var subject = document.getElementById("formSubject"); }
> google.script.run.sendEmail();
>
> </script> </head> <body>
>
>
> <form>
>
> <form id="formSubject">
> <p> Subject:<br> <input type="text" name="subject" size="36"> </p>
> </form>
>
> <p> Body:<br> <textarea name="body" rows="15"
> cols="37"style="Left"></textarea> </p>
>
> <input type="button" value="Send" onclick =
> "google.script.run.withSuccessHandler(onSuccessSubject).getSubject();"/>
>
> <input type="button" value="Cancle" onclick="google.script.run
> .withSuccessHandler(showConfirmation(document.getElementById('subject').value))
> .processData(document.getElementById('subject').value)" />
>
> </form>
> </body>