2017-02-20 6 views
1

У меня возникла проблема с отправкой сообщения тела html из листа Google с другого адреса электронной почты, который является псевдонимом.Отправка электронной почты с телом html с другого адреса электронной почты через листы Google

Я могу отправить его с помощью mailApp, но когда я переключаюсь на GmailApp, я не могу заставить его работать.

Сценарий Я использую ниже:

function sendNotification(event) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 
    var row = sheet.getActiveRange().getRow(); 
    var cellvalue = ss.getActiveCell().getValue().toString(); 
    var emailAdd = "[email protected]"; 
    if(event.range.getA1Notation().indexOf("G") > -1 && sheet.getRange("G" + row).getDisplayValue() > 999 && emailAdd.length > 1) 
    { 
    var rowVals = getActiveRowValues(sheet); 
    var aliases = GmailApp.getAliases(); 
Logger.log(aliases); 
    GmailApp.sendEmail(
     "[email protected]", 
     "Allocation Request - " + rowVals.quantity + " cases on " + rowVals.date, 
     {htmlBody: "There has been a new allocation request from " + rowVals.name + " in the " + rowVals.team + " team.<br \> <br \> " 
     + "<table border = \"1\" cellpadding=\"10\" cellspacing=\"0\"><tr><th>Issuing Depot</th><th>Delivery Date</th><th>Case Quantity</th></tr><tr><td>"+rowVals.depot+"</td><td>"+rowVals.date+"</td><td>"+rowVals.quantity+"</td></tr></table>" 
     + "<br \>To view the full details of the request, use the link below.<br \> <br \>" + 
     "<a href=\"https://docs.google.com/spreadsheets\">Allocation Requests</a>" 
     +"<br \> <br \><i>This is an automated email. Please do not reply to it.<\i>"}, 
     {from: aliases[0]} 
         ); 
    } 
} 

    function getActiveRowValues(sheet){ 
    var cellRow = sheet.getActiveRange().getRow(); 
    // get depot value 
    var depotCell = sheet.getRange("E" + cellRow); 
    var depot = depotCell.getDisplayValue(); 
    // get date value 
    var dateCell = sheet.getRange("F" + cellRow); 
    var date = dateCell.getDisplayValue(); 
    // get quantity value 
    var quantCell = sheet.getRange("G" + cellRow); 
    var quant = quantCell.getDisplayValue(); 
    // return an object with your values 
    var nameCell = sheet.getRange("B" + cellRow); 
    var name = nameCell.getDisplayValue(); 
    var teamCell = sheet.getRange("C" + cellRow); 
    var team = teamCell.getDisplayValue(); 
    return { 
    depot: depot, 
    date: date, 
    quantity: quant, 
    name: name, 
    team: team 
    } } 

мне удалось получить электронную почту, чтобы отправить от моего псевдонима, но он просто посылает и содержащий сообщение [объект], в то время как не посылая ее из псевдоним работает отлично.

Может ли кто-нибудь взглянуть и посмотреть, что я делаю неправильно? Я еще не смог найти ответ. Благодарю.

+0

Есть 4 параметра в SendEmail (TO, ПРЕДМЕТ, Email ТЕЛА, OPTIONS) Вам объект Options в 3 параметра для тела электронной почты. Вероятно, вы сделали эту ошибку, потому что пытаетесь собрать все вместе в одном месте. Вы должны создать переменную для объекта options и Html, чтобы sendEmail() был более читабельным. –

+0

Спасибо, заметила мою ошибку. Однако как установить переменную как тело html? –

+0

См. Ответ ниже –

ответ

1

Создать объект затем добавить элементы к объекту:

var bodyHTML,o,sendTO,subject;//Declare variables without assigning a value 

o = {};//Create an empty object 

bodyHTML = "There has been a new allocation request from " + rowVals.name; 

o.htmlBody = bodyHTML;//Add the HTML to the object with a property name of htmlBody 
o.from = aliases[0]; //Add the from option to the object 

sendTO = "[email protected]"; 
subject = "Allocation Request - " + rowVals.quantity + " cases on " + rowVals.date; 

GmailApp.sendEmail(sendTO,subject,"",o);//Leave the third parameter as an empty string because the htmlBody advanced parameter is set in the object. 
+0

Извините, будучи немного глупым и, похоже, не может заставить это работать. Я очень новичок в написании сценариев, поэтому, очевидно, что-то не так. Где я могу добавить это в свой существующий скрипт, чтобы он работал? –

+0

Объявление переменной должно быть на самом верху. Я оставил 'GmailApp' перед' sendMail', я просто добавил переменную 'sendTO'. Вы получаете сообщение об ошибке? Посмотрите в VIEW, EXECUTION TRANSCRIPT, чтобы узнать, завершен ли код или нет, и если он не удался, в какой строке он не сработал. –

+0

Я не получаю сообщение об ошибке, но, смотря в стенограмме выполнения, он здесь не работает. Выполнение не выполнено: TypeError: Не удается найти функцию sendMail в объекте –

Смежные вопросы