2014-10-17 1 views
0

Я использую Google Apps Script, чтобы получить ответы в определенной форме в конкретной электронной почте,Ошибка при попытке использовать «Ответить» в скриптах Google Apps

То, что я пытаюсь do - использовать форму google для открытия билетов поддержки, поэтому людям необходимо заполнить некоторые поля, такие как название, описание и адрес электронной почты,

И когда они отправят форму, она автоматически откроет билет, но адрес электронной почты будет всегда у владельца формы, и это было проблемой, потому что мы хотим, чтобы тот, кто открыл билет, получал обновления по электронной почте, поэтому я пытаюсь это сделать:

Я разместил поле в форме, прося электронной почты для лиц, и я пытаюсь поместить это письмо в ответ ...

И, судя по всему, я нахожусь в правильном пути, чтобы поймать этот e- mail, но ответ на сообщение не отображается по электронной почте, что люди заполнили поле, появляется сообщение об ошибке: [Ljava.lang.Object; @ 34dfe075

Помогает ли кто-нибудь мне?

Вот мой сценарий:

function Initialize() { 

var triggers = ScriptApp.getProjectTriggers(); 

for(var i in triggers) { 
ScriptApp.deleteTrigger(triggers[i]); 
} 

ScriptApp.newTrigger("SendGoogleForm") 
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()) 
.onFormSubmit() 
.create(); 

} 

function SendGoogleForm(e) 
{ 
try 
{  
var email = "[email protected]"; 
var form = e.namedValues; 
var subject = form["Title"]; 
var s = SpreadsheetApp.getActiveSheet(); 
var columns = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];  
var message = "";  

for (var keys in columns) { 
    var key = columns[keys]; 
    if (e.namedValues[key] && (e.namedValues[key] != "")) { 
    message += key + ' :: '+ e.namedValues[key] + "\n\n"; 
    } 
} 

GmailApp.sendEmail(email, subject, message, {replyTo: form["E-mail"], from: "[email protected]"}); 

} catch (e) { 
Logger.log(e.toString()); 
} 

} 

А вот выход из этого:

from: [email protected] 

reply-to: [Ljava.lang.Object;@34dfe075 

to: [email protected] 

date: Fri, Oct 17, 2014 at 10:55 AM 

subject:  New Test 

Ответ на, сломана :(

ответ

0

Значения возвращаются в е. namedValues ​​- массивы, поэтому вы должны обращаться к ним как таковым.

Измените свою строку sendEmail следующим образом:

GmailApp.sendEmail(email, subject, message, {replyTo: form["E-mail"][0], from: "[email protected]"}); 

Обратите внимание на [0] Индекс массива в форме [ «E-Mail»] поле, показывая, что вы хотите, первое значение в этом массиве, который будет введен адрес электронной почты.

См. Пример рядом с "e.namedValues" здесь: https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events

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