Intenté agregar una imagen de hipervínculo al final de mi mensaje de correo electrónico. Adjuntar pdf y agregar una imagen funciona bien, pero no tengo ni idea de cómo hacer lo mismo con una imagen de hipervínculo.

Mis fuentes anteriores fueron: Agregar imagen a la secuencia de comandos de la aplicación de correo electrónico de Google Sheets https://developers.google.com/apps-script/ reference / mail / mail-app # sendemailmessage

Código:

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]}); 
  }
}

}

¡Gracias!

1
04k 10 oct. 2019 a las 20:48

1 respuesta

La mejor respuesta
  • Desea poner una imagen con el hipervínculo al correo electrónico cuando el correo electrónico se envía usando MailApp.sendEmail().

Si mi comprensión es correcta, ¿qué tal esta respuesta? La imagen se puede poner con el hipervínculo usando el cuerpo HTML. Un simple script de muestra es el siguiente.

Script de muestra:

En este script de muestra, se coloca un logotipo como imagen con el hipervínculo.

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});
  • También puedes usar GmailApp como GmailApp.sendEmail(email, "sample subject", "sample body", {htmlBody: htmlBody}).
  • En este caso, se requiere poder ver el correo electrónico con el cuerpo HTML.

Script modificado:

Cuando se modifica su secuencia de comandos y la imagen se coloca en el último cuerpo HTML, se convierte en lo siguiente.

Agregue la siguiente secuencia de comandos antes de 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>';

Referencias:

2
Tanaike 12 oct. 2019 a las 00:07