【发布时间】:2020-10-20 16:54:44
【问题描述】:
我一直在尝试学习如何使用 html 发送脚本电子邮件,但我在动态数据方面遇到了挑战,我需要帮助。
我想查看已结束项目的 google 表格,并通过电子邮件脚本将其作为表格发送。
工作表如下所示:
这是读取电子表格的代码:
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Projects"));
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("A2:O20");
var data = dataRange.getValues();
for (i in data) {
var rowData = data[i];
var emailAddress = rowData[11];
var recipient = rowData[8];
var end_date = rowData[2];
var message1 = 'Kindly note that the project'
var message2 = 'was scheduled to end on' + ' ' + end_date +'. Please confirm the end date and if it needs to be readjusted. If the project is on course please fill the project end survey '
var message3 = 'Thanks'
var pro_name = rowData[4];
var pro_code = rowData[5];
var message = 'Dear ' + recipient + ',\n\n' + message1 + ' ' + pro_name + ' ' + message2 + '.\n\n' + message3;
var subject = 'Project End: ' + pro_name;
MailApp.sendEmail(emailAddress, subject, message);
}
}
我想出了基本的 HTML 文件,但我不知道如何链接两者,只向项目结束的人发送电子邮件。
<div dir="ltr">Hi,
<div>
<br>
</div>
<div>
<table cellspacing="0" cellpadding="0" dir="ltr" border="1" style="table-layout:fixed;font-size:10pt;font-family:Arial;width:0px;border-collapse:collapse;border:none">
<colgroup>
<col width="153">
<col width="125">
<col width="141">
<col width="100">
<col width="375">
<col width="119">
<col width="132">
</colgroup>
<tbody>
<tr style="height:21px">
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)">Project_State</td>
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)">Start_Date</td>
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)">End_Date</td>
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)">Project_ID</td>
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)">Project_Name</td>
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)">Project_Code</td>
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)">Type</td>
</tr>
<? for(var i = 0; i < Data.length; i++) { ?>
<tr style="height:29px">
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)"><?= proData[i].project_name ?></td>
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;border:1px solid rgb(204,204,204)"><?= proData[i].project_code ?></td>
<td style="overflow:hidden;padding:2px 3px;vertical-align:bottom;text-align:center;border:1px solid rgb(204,204,204)">1<?= proData[i].end_date ?></td>
</tr>
<? } ?>
</tbody>
</table>
</div>
【问题讨论】:
-
建议:从保持html简单开始,然后逐渐变得更复杂。
-
使用
MailApp.sendEmail(emailAddress, subject, message,{htmlBody:yourhtml});的版本 -
很多人使用模板化的html:developers.google.com/apps-script/guides/html/templates
标签: javascript html for-loop google-apps-script