E-Mail an Google Doc als PDF-Anhang

onerockscott

[email protected] ich eine Weile damit zu kämpfen habe, rufe ich die Menge um Hilfe.

Ich versuche, 2 Google Text & Tabellen als PDFs an eine E-Mail anzuhängen. Ich sehe viele Beispiele in Bezug auf Google Sheets und konnte Kopien von Blättern erfolgreich als PDF per E-Mail versenden, aber ich konnte dies nicht auf Docs übertragen.

In mehreren verschiedenen Szenarien sind die PDF-Anhänge entweder eine Kopie meiner ursprünglichen Vorlage Doc oder eine Bilderfassung der Anmeldeseite "Ein Konto. Alle von Google" . Wenn ich mir die generierten Links (Logger.log) ansehe und sie verwende, wird eine Kopie des richtigen Dokuments heruntergeladen.

Unten finden Sie ein Beispiel für mein Szenario, in dem ich versuche, die E-Mail-Anhänge zu erstellen. Siehe Funktion emailDocAsPDF () unten

Vielen Dank im Voraus für jede Anleitung zu diesem Thema.

function myFunctionUpdated() {

  var testTemplateId = searchDriveFile('Test Template');
  Logger.log('test template id = ' + testTemplateId);

  var fileName = 'Copy of Test Template'
  Logger.log(fileName);

  DriveApp.getFileById(testTemplateId).makeCopy(fileName);

  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = ss.getRange(1, 1, 3, 2).getValues();

  var copyNewTemplateId = searchDriveFile(fileName);

  var copyTemplate = DocumentApp.openById(copyNewTemplateId);
  var copyTemplateBody = copyTemplate.getBody().editAsText();

  for (i=0; i<range.length; i++) {
      copyTemplateBody.replaceText(range[i][0], range[i][1]);
  }

  copyTemplate.saveAndClose();

  emailDocAsPDF(fileName)
}


// Searched Google Drive for a file name and returns the file ID.
function searchDriveFile(fileName) {
  var files = DriveApp.searchFiles(
     'title = "'+ fileName +'"');
  while (files.hasNext()) {
    var file = files.next();
    var id = file.getId();
    return id;
  } 
}


// Send document in an email as PDF
function emailDocAsPDF(fileName) {

  var staticDoc = 'FILE-ID';

  var attachmentDoc = UrlFetchApp.fetch("https://docs.google.com/document/d/" + copyTemplateId + "/export?format=pdf");
  Logger.log("https://docs.google.com/document/d/" + copyTemplateId + "/export?format=pdf");

  var attachmentStaticDoc = UrlFetchApp.fetch("https://docs.google.com/document/d/" + staticDoc + "/export?format=pdf");
  Logger.log("https://docs.google.com/document/d/" + staticDoc + "/export?format=pdf");

  var fileBlob = [];

  fileBlob[0] = attachmentDoc.getBlob().getAs('application/pdf');
  fileBlob[1] = attachmentStaticDoc.getBlob().getAs('application/pdf');

  var body = "Bird is the WORD!! <br>" +
    "<a href='http://www.example.com'>Visit Example</a>";

   if (MailApp.getRemainingDailyQuota() > 0) 
    GmailApp.sendEmail("[email protected]", "Test Documents Email", body, {
      htmlBody: body,
      attachments:[fileBlob[0],fileBlob[1]]     
    });

}

BEARBEITEN - Erfolgreiche Updates mit Code von Sandwich.

// Send document in an email as PDF
function emailDocAsPDF(fileName) {

  var staticDoc = 'FILE-ID';

  var copyTemplateId = searchDriveFile(fileName);

  var blobs = [];

  var doc = DriveApp.getFileById(copyTemplateId);
  blobs[0] = doc.getBlob().getAs('application/pdf').setName('MyAttachment1.pdf');

  var doc = DriveApp.getFileById(staticDoc);
  blobs[1] = doc.getBlob().getAs('application/pdf').setName('MyAttachment2.pdf');

  var zipBlob = Utilities.zip(blobs).setName('Documents.zip');

  var recipient = '[email protected]';
  var subject = 'Test Email';
  var body = 'Bird is the WORD';
  MailApp.sendEmail(recipient, subject, body, {attachments: [zipBlob]});
}
user3717023

Um ein Dokument als PDF anzuhängen, rufen Sie getBlobdie Datei auf, geben Sie den Inhaltstyp wie mit an .getAs('application/pdf')und legen Sie optional einen Namen mit fest setName. Das ist alles:

var doc = DriveApp.getFileById('ID_HERE');
var blob = doc.getBlob().getAs('application/pdf').setName('MyAttachment.pdf');
var recipient = '[email protected]';
var subject = 'Email subject';
var body = 'Text here';
MailApp.sendEmail(recipient, subject, body, {attachments: [blob]});

Sie haben versucht, "Als PDF über URL-Abfrage exportieren" zu verwenden. Dies ist eine schlecht dokumentierte Funktion, die manchmal für Blätter nützlich ist (Festlegen der Grenzen des exportierten Bereichs), für Dokumente jedoch nicht erforderlich ist, wenn sie überhaupt für sie vorhanden ist. Die oben beschriebene Methode sollte für alle in Google Drive gespeicherten Inhalte funktionieren.

Übrigens ist es vorzuziehen, MailAppanstelle des GmailAppVersendens von E-Mails zu verwenden, da die Berechtigungsstufe auf das beschränkt bleibt, was Sie benötigen: das Versenden von E-Mails. Mit GmailApperhält das Skript auch die Berechtigung, auf alle vorhandenen E-Mails zuzugreifen und diese zu löschen. Dies ist für Skripte, die durch Ausprobieren und Kopieren von Code aus dem Internet erstellt wurden, nicht ratsam.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Konvertieren Sie Google Doc in PDF und senden Sie eine E-Mail mit PDF-Anhang

E-Mail im PDF-Anhang als Stream senden

Senden Sie eine E-Mail mit Anhang als PDF

PDF als Mail-Anhang - Laravel

Mehrteiliger E-Mail-PDF-Anhang leer

Ändern des E-Mail-Textes für Transaktionen, die als PDF-Anhang gesendet werden

Verwaltung von PDF mit Django über eine Vorlage und als Anhang einer E-Mail gesendet

Generiertes PDF als E-Mail-Anhang senden Asp.NetCore

html2canvas und jsPDF: Generiertes PDF als E-Mail-Anhang senden

Wie kann ich mit PHP mehr als ein PDF generieren und per E-Mail-Anhang senden?

Wie versende ich eine E-Mail mit einem ausgefüllten PDF-Formular als Anhang in PHP?

Senden einer Google Doc-E-Mail-Vorlage als HTML-Format per E-Mail

Matlab Publish zeigt Code falsch als E-Mail-Anhang an?

E-Mail-Anhang als verschlüsselter Text gesendet

Generierten Bericht als E-Mail-Anhang in SpringBoot senden

Screenshot erstellen und als E-Mail-Anhang versenden

Auf einen E-Mail-Anhang als Objekt zugreifen

Frau Access E-Mail mit Bericht als Anhang senden

Büroklammerdatei per E-Mail als Anhang senden - Rails

E-Mail-Anhang falscher Medientyp Google Mail-API

Exportieren Sie ein Google Sheet in CSV und senden Sie es als Anhang per E-Mail -> sendet einen CSV-Anhang, der jedoch mit Junk gefüllt ist

PHPMailer PDF-Anhang verursacht ungültige E-Mail

Probleme mit diesem E-Mail-Anhang und PDF?

E-Mail eines Abschnitts einer Excel-Tabelle in einer E-Mail als PDF-Anhang mit einer Schaltfläche

Google App Script-E-Mail als PDF aus Tabelle

Benennen Sie den E-Mail-Anhang in Google Apps Script

pdf nicht als anhang senden

So senden Sie eine E-Mail mit der clientseitigen Google Mail-API, die HTML-Inhalt und ein Bild als Anhang enthält

Sendmail-Befehl zum Senden einer Datei als E-Mail-Text sowie als Anhang

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv