Я пытаюсь выполнить автопочту с помощью скрипта в Google Spreadsheet, чтобы отправить почту всем своим клиентам одновременно. Но каждый раз, когда я пытаюсь запустить скрипт, он говорит, что я неправильно назначил содержимое HTML переменной.
Код скрипта для присвоения значения был таким:
function sendMail(){
var name = 1;
var email = 2;
var userEmail = 3;
var password = 4;
var emailTemp = HtmlService.createTemplateFromFile("MailApp");
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Copy of OneDrive Cloud Storage");
var data = ws.getRange("B2:E" + ws.getLastRow()).getValues();
data.forEach(function(row){
emailTemp.name = row[name];
emailTemp.userEmail = row[userEmail];
emailTemp.password = row[password];
emailTemp.email = row[email];
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.sendEmail(
row[email],
"OneDrive 5TB Storage",
"Your email doesn't support HTML.",
{name: "AutoMail by Shovon", htmlBody: htmlMessage}
);
});
}
Ошибка была в строке: var htmlMessage = emailTemp.evaluate().getContent();
В сообщении об ошибке говорится:
Я также прикрепляю HTML-код:
<html>
<head>
<base target="_top">
</head>
<body>
<p>Dear <b> <?= name ?>, </b> </p>
<p>I received your <b>OneDrive 5TB Cloud Storage</b> request yesterday. I'm really very sorry for being so late as I had some personal things to do.</p>
<p>But the good news is I've successfully created the following <b>OneDrive Business Account</b> for you: </p>
<p> User email:<b> <u><? = userEmail?> </u> </b> <br>
Password: <b> <?= password?> </b> </p>
<p> Please login to this <b> Microsoft</b> account as soon as possible and set up 2 steps verification method by using your own email address(e.g. <b> <u> <?= email ?> </u> </b>).</p>
<p>To login <b> <u> <a href = "https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1590813490&rver=7.0.6738.0&wp=MBI_SSL&wreply=https:%2F%2Faccount.microsoft.com%2Fauth%2Fcomplete-signin%3Fru%3Dhttps%253A%252F%252Faccount.microsoft.com%252F%253Frefp%253Dsignedout-index%2526refd%253Dwww.bing.com&lc=1033&id=292666&lw=1&fl=easi2">click here</a></u></b>.</p>
<p>Yours,<br>
<b>Md. Shahariar Shovon</b></p>
</body>
</html>
Пожалуйста, помогите мне решить эту проблему.
var data = ws.getRange("B2:E" + ws.getLastRow()).getValues();
должно бытьvar data = ws.getRange("B2:E" + ws.getLastRow()-1).getValues();
- person Cooper   schedule 30.05.2020var name = 1;
должно быть этимvar name = 0;
, а все остальные должны быть уменьшены на единицу. Массивы, начинающиеся с нулевого столбца, начинаются с 1, а ваш диапазон начинается с столбца B, и у вас есть только 4 столбца, поэтому они должны быть 0,1,2 и 3 для индексов. - person Cooper   schedule 30.05.2020