Использование MailApp sendEmail в общем приложении - PullRequest
0 голосов
/ 01 апреля 2019

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

Я изначально развернул приложение, установив его:

  • Запустите приложение как: Я (мой аккаунт)
  • У кого есть доступ к приложению: любой член домена компании

Позже я перенастроил приложение следующим образом

  • Запустить приложение как: Пользователь, имеющий доступ к веб-приложению
  • У кого есть доступ к приложению: любой член домена компании

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

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

В проекте висела неиспользуемая библиотека, а также тот факт, что я не смог очистить некоторый файл манифеста,

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

Наконец-то я поделился приложением, и пользователи наконец-то смогли отправлять электронные письма, которые отправлялись из их собственных аккаунтов,

Большое спасибо заВаше вмешательство, вы были правы, я выложил весь сценарий онлайн, это может быть полезно для других,

Я просто указываю, что сценарий выбирает данные из листа, помещает их в таблицу и добавляет подпись санимированные картинки GIF,

function sendemail(id) {
  var rw = parseInt(id);
	var agent = Session.getActiveUser().getEmail();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Saisie");
  var des = sheet.getRange(rw,8).getValue();
  var eml = sheet.getRange(rw,9).getValue();
  var dat = Utilities.formatDate(new Date(), "Europe/Paris", "dd/MM/yyyy");
  var typ = sheet.getRange(rw,5).getValue();
  var nbo = sheet.getRange(rw,6).getValue();
  var obj = sheet.getRange(rw,7).getValue();
  var num = sheet.getRange(rw,4).getValue();
  var soc = sheet.getRange(rw,11).getValue();
  var nom = sheet.getRange(rw,12).getValue();
  var adr = sheet.getRange(rw,13).getValue();
  var vil = sheet.getRange(rw,14).getValue();
  var pay = sheet.getRange(rw,15).getValue();
  var company = DriveApp.getFileById('abcd').getBlob().setName("company");
  var departement = DriveApp.getFileById('abcd').getBlob().setName("company");
  var userName = getUserInfo(agent);
  var msg = '<html><head><meta charset="utf-8">' +
  '<style>table{border-collapse:collapse;}td{border: 1px solid black;padding-left:4px;}.tete{background-color:#f6f6f6;text-align:center;}.titre {background-color:#ebffce;}</style>' +
  '</head><body>Bonjour,<br><br><table style="width:100%;"><tr><td colspan="2" class="tete">Réception d&apos;objet à l&apos;attention de « <span style="color:#0900c6;">'+ des + '</span> »</td></tr>' +
  '<tr><td width="140" width class="titre">Date de réception</td><td>'+ dat +'</td></tr>' +
  '<tr><td class="titre">Objet & Nombre</td><td>'+ obj + ' - ' + nbo + '</td></tr>' +
	'<tr><td class="titre">Type Transport</td><td>'+ typ + '</td></tr>' +
  '<tr><td class="titre">N° Transport</td><td>'+ num +'</td></tr>' +
  '<tr><td colspan="2" class="tete">Info Expéditeur</td></tr>' +
  '<tr><td class="titre">Société</td><td>'+ soc +'</td></tr>' +
  '<tr><td class="titre">Collaborateur</td><td>'+ nom +'</td></tr>' +
  '<tr><td class="titre">Adresse</td><td>'+ adr +'</td></tr>' +
  '<tr><td class="titre">Ville - Pays</td><td>'+ vil + ' ' + pay + '</td></tr></table><br>' +
  'Cordialement, '+ userName +' - Service Courrier.<br><br>' +
  '<table style="border-collapse:collapse;"><tr>' +
  '<td rowspan="2" style="text-align:center;border: 1px solid black;"><img src="cid:logocompany"></td>' +
  '<td  style="text-align:center;border: 1px solid black;"><img src="cid:logodepartement"></td>' +
  '</tr><tr><td style="text-align:center;border: 1px solid black;padding:4px;"><div style="text-align:center;">' +
  '12 Place de la République - 75123 Paris Cedex 10<br>Tél. : 02 44 44 44 44  -  Fax : 02 55 55 55 55<br>Email : <a href="mailto:'+agent+'">'+agent+'</a></div></td></tr></table></body></html>';
  MailApp.sendEmail({
    to: eml,
    subject: "Message Automatique Service Courrier",
    htmlBody: msg,
    inlineImages:{
      logocompany: company,
      logodepartement:departement
    }
  });
}
0 голосов
/ 01 апреля 2019

Это определенно должно быть возможно, потому что существует множество приложений, таких как Outreach.io, Hubspot, Autopilot и FrontApp, у которых пользователи подключают свою учетную запись G Suite для использования этой инфраструктуры для отправки.

  1. Можете ли вы объяснить, что вы подразумеваете под "блоками приложений"?
  2. Что произошло с отправленным по электронной почте после того, как вы внесли изменения для отправки от пользователя, имеющего доступ к веб-приложению? Там не было никаких изменений или это выдало ошибку?
  3. Есть ли у вас в почтовом ящике G Suite или Gmail копия письма, отправленного через веб-приложение? Если да, можете ли вы перейти к «Показать оригинал» и скопировать вставить заголовок информации в эту ветку? Эта информация позволит мне быстро оценить немного больше информации об отправляющей инфраструктуре. Имейте в виду, что информация «Показать оригинал» не может быть получена из переадресованного электронного письма.

Мир, -LB

...