Можно ли изменить адрес с помощью sendEmail?

Мне интересно, есть ли какие-либо опции для изменения адреса FROM сообщения электронной почты, отправленного с помощью MailApp.sendEmail.

Я создал форму, опубликованную как веб-приложение. Студенты заполняют и отправляют форму и получают электронное письмо. Я вижу, как изменить ответ электронной почты на адрес и имя отправителя. Я знаю, что адрес электронной почты, использующий мой адрес как адрес From, так как я являюсь владельцем script, и приложение работает как я.

Есть ли способ установить, что адрес From принадлежит другому человеку, в данном случае, инструктору? Я предполагаю, что один из способов добиться этого - сделать его владельцем script и провести его через повторное опубликование приложения для нас, но я бы не отказался передать его ему. (Из того, что я видел, владелец script может опубликовать script.)

Другими словами, я хочу, чтобы адрес From представлял клиента, для которого создается script, а не программист, который его пишет.

Я понимаю, что это не желательная функция, позволяющая script отправлять электронную почту от любого, кто под солнцем. Мне просто интересно, есть ли у кого-нибудь рекомендации по решению моей проблемы.

Спасибо!

Ответ 1

Google не является гибким в этом отношении - единственным адресом "от", который вы видите, является тот, который принадлежит пользователю, полномочия которого находятся под управлением script.

Вместо того, чтобы работать как "программист", вы можете использовать учетную запись Google "robot", что-то вроде [email protected]. Вы можете разрабатывать свои скрипты как самостоятельно, а затем переиздавать их с робота.

В домене Google Apps администратор может создать этого пседо-пользователя и отредактировать настройки, чтобы скрыть их из каталога Google Apps, если это желательно.

Письмо, которое получают студенты, не будет от их инструктора, но оно также не будет от вас.

Ответ 2

Если вы используете GMailApp.sendMail(вместо MailApp.sendEmail), вы можете указать его как дополнительный дополнительный параметр: https://developers.google.com/apps-script/reference/gmail/gmail-app#sendEmail(String,String,String,Object)

Я считаю, что вы можете указать только псевдонимы, с которыми вы уже настроили свою учетную запись Gmail.

Ответ 3

Да, вы можете и это довольно легко. Используйте журнал, чтобы определить, какое место в массиве имеет ваш псевдоним, если у вас несколько псевдонимов. Затем, чтобы проверить, что у вас есть правильное расположение массива, используйте это в журнале.

var aliases = GmailApp.getAliases()
Logger.log(aliases); //returns the list of aliases you own
Logger.log(aliases[0]); //returns the alias located at position 0 of the aliases array

GmailApp.sendEmail('[email protected]','From an alias', 'A message from an alias!', {'from': aliases[0]});

Ответ 4

Я хотел построить на chrisb ответить выше, но мне еще не разрешено прокомментировать...

Как сказал chrisb:

  • создайте алиас в своей учетной записи только для формы.
  • Используйте Gmail.App для отправки электронной почты "из" созданного вами псевдонима.

Затем напишите Google Apps script для обработки писем, отправленных на этот псевдоним, чтобы сообщения электронной почты от инструктора появлялись в вашем почтовом ящике, но электронные письма от кого-либо еще отправляются инструктору с полем "replyTo", установленным для того, кто отправил электронное письмо.

Ответ 5

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

важно: псевдоним должен быть добавлен manuelly к нужной учетной записи (в Gmail перейдите к "настройкам", затем "Учетная запись", затем "Отправить как")

когда вы это делаете, вы должны использовать метод GmailApp в своем скрипте под названием "GmailApp.SendEmail()"

сначала вам нужно прочитать псевдоним из Gmail-аккаунта:

var myAliases = GmailApp.getAliases(); допустим, что у вас есть только один псевдоним, поэтому первый псевдоним будет в indexd 0 → myAliases[0] в этом случае вы можете использовать этот метод следующим образом:

GmailApp.sendEmail('[email protected]', 'subject', 'body', {from: myAliases[0], name:'Name of the Alias'});

это.