问题描述
我在谷歌表单中添加了许多(80+)来预填充表单并让它们进入并初始化并修复表单上的任何缺失数据。我正在向每个人发送该程序的电子邮件提醒,并希望同时使用谷歌表格中的脚本将他们的链接发送到表单。 在 youtube 上找到类似的内容后,我将这个脚本放在了一起,但在我的电子邮件中使用 html 编码很难发送给每个人。
function sendEmail() {
var email = 0;
var name = 1;
var link = 2;
var emailTemp = HtmlService.createTemplateFromFile("Email")
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var wsSettings = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Settings");
var name = wsSettings.getRange("B2").getValue();
var subject = wsSettings.getRange("B1").getValue();
var data = ws.getRange("A2:D" + ws.getLastRow()).getValues();
data = data.filter(function(r){ return r[3] == true });
data.forEach(function(row){
emailTemp.e = row[email];
emailTemp.n = row[name];
emailTemp.l = row[link];
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.sendEmail(
row[email],subject,"Your email doesn't support HTML.",{name: "name",htmlBody: htmlMessage}
);
});
}
Here is my html for my email message:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p><span style="font-family: arial;"><span style="font-family: 'arial black',sans-serif;">Dear <?= n ?>,</span><br /><br />This email will take you to the pre-populated Google Form used to record attendance for <span style="font-family: 'arial black',sans-serif;"><strong>Supporting Children and Families in our Community</strong></span> on January 22,2021,held from 12:00-3:00 pm.<br /><br />Please visit this <strong><span style="color: #0000ff;">Link</span></strong> to complete any missing data and initial in before clicking on the submit button. <span style="color: #ba372a;">You will only be able to sign-in for the training on January 22,2021</span>,so do not forget to complete the form if you would like a certificate for attending or SCECHs. </span></p>
<p><span style="font-family: arial;">If you kNow <strong><span style="color: #843fa1;">someone that is attending that did not receive an email with a form to complete</span></strong>,please have them contact me ASAP so they have a form to complete to sign-in.</span></p>
<p><span style="font-family: arial;">To reach the zoom presentation for <strong>Supporting Children and Families in our Community,</strong> please click here. The link will only work on January 22,near the start time.</span></p>
<p><span style="font-family: arial;"><br />If you have any questions or concerns,please let me kNow.</span></p>
<p><span style="font-family: arial;"><br />Best Regards,<br /><span style="font-family: 'arial black';">Erika Rupert</span><br />Bay-Arenac ISD<br /><strong><a href="mailto:[email protected]">[email protected]</a></strong><br /><br /> </span></p>
</body>
</html>
我很挣扎,因为每个人的链接都不一样。 以下是表格:https://docs.google.com/forms/d/1gb6rmbx9EjWSfyRAJyVt3HojIcsMApGZhZRDThDm40g/edit?usp=sharing,为每个注册参加的人填充。 预先感谢您的帮助。
请注意,除非我的组织批准,否则我无法添加 Google 应用。大多数是不允许的。
解决方法
要在 HTML 中包含链接,您需要一个标签。
您需要在 html 代码中包含以下内容,其中链接用于创建一个可点击的项目,以显示用户需要的网页:
<a href="<?= l ?>">Link</a>
我对您发送电子邮件的代码不太了解,下面是一个有效的代码:
function sendEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Sheet1');
var rng = sh.getDataRange();
var val = rng.getDisplayValues();
var lr = rng.getLastRow();
var name = sh.getRange("B2").getValue();
var subject = sh.getRange("B1").getValue();
for (var i = 1; i < lr; i++) {
if (val[i][0] != ""){
var html = HtmlService.createTemplateFromFile('Email');
html.e = val[i][0];
html.n = val[i][1];
html.l = val[i][2];
var htmlMessage = html.evaluate().getContent();
GmailApp.sendEmail(
val[i][0],subject,"Your email doesn't support HTML.",{name: name,htmlBody: htmlMessage}
);
}
}
}