Добавить изображение гиперссылки в сценарий приложения электронной почты Google Sheets - PullRequest
1 голос
/ 10 октября 2019

Я попытался добавить изображение гиперссылки в конец моего сообщения электронной почты. Присоединение pdf и добавление изображения работает хорошо, но я понятия не имею, как сделать то же самое с изображением гиперссылки.

Мои предыдущие источники: Добавление изображения в сценарий приложения электронной почты Google Sheets https://developers.google.com/apps-script/reference/mail/mail-app#sendemailmessage

Код:

function emailSend(){

// Auf das aktive Tabellenblatt zugreifen
var ts = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Invoice")
var as = SpreadsheetApp.openById("1ffdhHQC4mpBTy8RzAcgXOrFv_fSXXXd3g1Ajx_EEcLguOvU").getSheetByName("Test") 
var is = SpreadsheetApp.openById("138nWL92xj1KTJdfhdh4iaOn_c62o5Qy-YynLFk1kAIky1TUF8").getSheetByName("Tabellenblatt1")
var ks = SpreadsheetApp.openById("afdfd5_s1HQC4mpBTy8RzAcgXOrFv_fSXXXd3g1Ajx_EEcLguOvU").getSheetByName("Kunden")

var getData = Browser.inputBox('Sende Rechnungsemail', 'Schreib: OK', Browser.Buttons.OK_CANCEL);
if (getData != 'cancel') 
{
  if (getData == 'OK')
  {
//Rechnungsverzeichnis
  var rechnungen = SpreadsheetApp.openById("1HQC4mpBTy8RzAcgXOrFv_fSXXXd3g1Ajx_EEcLguOvU").getSheetByName("Kundenrechnungen");
  var row = 2;
  var column = 2;
  while(rechnungen.getRange(row, column).getValue() != '')
  {
    row++;

  }
  //is.getRange(18,4).setValue(rechnungen.getRange(row,1).getDisplayValue());
  rechnungen.getRange(row,column).setValue(new Date);
  rechnungen.getRange(row,3).setValue(as.getRange("A3").getValue());
  rechnungen.getRange(row,4).setValue(as.getRange("B3").getValue());
  rechnungen.getRange(row,5).setValue(as.getRange("C3").getValue());
  rechnungen.getRange(row,6).setValue(as.getRange("D3").getValue());
  rechnungen.getRange(row,7).setValue(as.getRange("K3").getValue());
  rechnungen.getRange(row,8).setValue(as.getRange("L3").getValue());
  rechnungen.getRange(row,9).setValue(as.getRange("M3").getValue());


// Den Betreff für die Email aus Zelle B2 auslesen
var betreff = as.getRange("B5").getValue();

// Die Emailadresse für den Empfänger aus Zelle B3 auslesen
//var emailEmpfaengerAdresse = as.getRange("G3").getValues();
    var emailEmpfaengerAdresse = "xxx@googlemail.com";

// Die Nachricht für die Email aus der Zelle B4 auslesen
var nachricht = as.getRange("B6").getValues();

var nachricht = "Hi"+ "<p>" + '<img src="cid:image"><br/>' + "</p>";

//Bild    
var blob = UrlFetchApp.fetch("http://example.com/wp-content/uploads/2019/08/email-2.jpg").getBlob();


// Das Tabellenblatt als PDF der Variablen pdf zuweisen


var pdf = DriveApp.getFileById('55435hs1138nWL92xj1KTJiaOn_c62o5Qy-YynLFk1kAIky1TUF8').getAs('application/pdf').getBytes();

// Den Anhang festlegen (Name des Anhangs, Inhalt, Typ)
var anhang = {fileName:(betreff+".pdf"),content:pdf, mimeType:'application/pdf'};

//Nachfrage

// Senden der Email
var nachricht2 = nachricht.replace(/\<br\/\>/gi, '\n').replace(/(<([^>]+)>)/ig, ""); 
    MailApp.sendEmail(emailEmpfaengerAdresse, betreff, nachricht2,{ htmlBody: nachricht, inlineImages: {image:blob }, attachments:anhang});

//Sendung an Selbst
MailApp.sendEmail("xxx@xxx.com", (SpreadsheetApp.getActiveSpreadsheet().getRange("B3").getValue()+" "+ SpreadsheetApp.getActiveSpreadsheet().getRange("A3").getValue() + " Rechung"), nachricht, {attachments:[anhang]}); 
  }
}

}

Спасибо!

1 Ответ

2 голосов
/ 12 октября 2019
  • Вы хотите поместить изображение с гиперссылкой на электронное письмо при отправке электронного письма, используя MailApp.sendEmail().

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

Пример сценария:

В этом примере сценария логотип помещается в виде изображения с гиперссылкой.

var email = "###"; // Please set an email address.
var htmlBody = '<a href="https://stackoverflow.com/company/logos"><img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png" alt="sample" width="30%" height="30%"></a>';
MailApp.sendEmail({to: email, subject: "sample subject", body: "sample body", htmlBody: htmlBody});
  • Также вы можете использовать GmailApp, как GmailApp.sendEmail(email, "sample subject", "sample body", {htmlBody: htmlBody}).
  • В этом случае требуется, чтобы иметь возможность просматривать электронную почту с телом HTML.

Модифицированный скрипт:

Когда ваш скрипт был изменен и изображение помещено в последний текст HTML, оно стало следующим:

Пожалуйста, добавьте следующий скрипт перед MailApp.sendEmail(emailEmpfaengerAdresse, betreff, nachricht2,{ htmlBody: nachricht, inlineImages: {image:blob }, attachments:anhang});.

nachricht += '<a href="https://stackoverflow.com/company/logos"><img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png" alt="sample" width="30%" height="30%"></a>';

Ссылки:

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