Просто настройте тестовый лист и скрипт для этого.
Вот мой пример тестового листа:
Этоscript:
function stringMail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('mail-test');
var range = sh.getDataRange();
var numRows = range.getValues().length;
var m1 = 'abc@mydomain.com,def@mydomain.com,ghi@mydomain.com';
var m2 = sh.getRange(1, 1, numRows, 1).getValues();
var m3 = m2.toString();
Logger.log(m1);
Logger.log(m2);
Logger.log(m2.toString());
Logger.log(m3);
if (m1 == m2.toString()) {
Logger.log('true');
}
if (m1 == m3) {
Logger.log('also true');
}
if (m3 == m2.toString()) {
Logger.log('still true');
}
}
Как вы можете видеть, я выполнил некоторые базовые операторы if, чтобы проверить, считаются ли они одинаковыми, если это так, то запишите запись в журнале.
Из вывода журнала:
[19-05-13 09:38:23:178 BST] abc@mydomain.com,def@mydomain.com,ghi@mydomain.com
[19-05-13 09:38:23:179 BST] [[abc@mydomain.com,def@mydomain.com], [ghi@mydomain.com]]
[19-05-13 09:38:23:179 BST] abc@mydomain.com,def@mydomain.com,ghi@mydomain.com
[19-05-13 09:38:23:180 BST] abc@mydomain.com,def@mydomain.com,ghi@mydomain.com
[19-05-13 09:38:23:180 BST] true
[19-05-13 09:38:23:181 BST] also true
[19-05-13 09:38:23:181 BST] still true
Как видите, переменная m1
, представляющая собой просто строку адресов электронной почты, считается такой же, как m2
, которая является вашим getValues().toString()
, используемым в вашем MailApp.sendEmail()
.Я также определил m3
, который был просто m2.toString()
, определенный отдельно, чтобы убедиться, что он тоже работает.
После этого тестирования мы можем определить, что наиболее вероятные значения в вашей электронной таблице вызывают ошибку, вам следуетдважды проверьте наличие лишних пробелов или странных символов.
Пока вы правильно набираете getValues()
и затем конвертируете его с помощью toString()
, у вас не должно быть никаких проблем с этим.