Встроенные изображения Sendmail также являются вложениями, но не должны - PullRequest
1 голос
/ 12 мая 2019

Я использую заключительную часть этого ответа для отправки изображений с диска в качестве встроенного изображения. https://stackoverflow.com/a/41292754/1045794

function sendPicsInline() {
  var picture1 = DriveApp.getFileById('0BxDqyd_bUCmvN1E3N0dQOWgycFE'); //public with link
  var picture2 = DriveApp.getFileById('0BxDqyd_bUCmvTFNjRkRXbXA2Tms'); //public with link
  var inlineImages = {};
  inlineImages[picture1.getId()] = picture1.getBlob();
  inlineImages[picture2.getId()] = picture2.getBlob();
   MailApp.sendEmail({
     to: 'testa@example.com, testb@example.com', 
     subject: "This is a test", 
     body:"Test message",
     htmlBody: 'Test message with pics inline <br>' +
     'first:<br><img src="cid:' + picture1.getId() + '" /><br>' +
     'second:<br><img src="cid:' + picture2.getId() + '" />',
     inlineImages: inlineImages   
  });
}

Это работает правильно, однако в нем также содержится вложение в электронном письме, что особенно расстраивает клиента gmail для Android.

Я попытался установить нулевое вложение, но это не работает. Не то, чтобы когда я использовал пример из документации , но изменил URL на любое другое изображение, я получил вложение, а также встроенное изображение. Используя логотип YouTube из связанной документации, я получаю только встроенные изображения без вложений.

Я не могу понять, почему - во всех случаях, с диска или другого URL, я использую файл PNG без других изменений.

1 Ответ

1 голос
/ 12 мая 2019

У меня есть изображения, которые хранятся на Google Диске как DataURI, и я только что отправил одно из них:

function sendEmailWithInlineImage() {
  var file=DriveApp.getFileById('FileId');
  GmailApp.sendEmail('recipient email', 'Inline Images', null, {htmlBody:Utilities.formatString('<h3>Inline Images</h3><img src="%s" />',file.getBlob().getDataAsString())});
}

Получено как встроенное изображение без вложений.

Первая часть файла выглядит так: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAMR0lEQVR42u2dbWwUxxnHTYLS0ISURrRRlCDxJkWp+qEKUtK3RHzoh5QPqSLh5mMVJVHVRiBZoY5UVcLxva8NBJOCg5EABRtjDtu8GEPqyqYFXNvY4Ffs89l39l1tn8/2nV8AGwPTnfU+x+Px7N6d70z23Bnpr73bt5ud3z7PMzO7N5OWJlJqpfb29uc9bvcfvF7vCZ/PVyWrRogvv89X3ef1Or29vZ/Scksq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...