簡體   English   中英

將帶有不同 PDF 的電子郵件發送到不同的電子郵件附件

[英]send email with different PDFs to different emails attachment

我正在嘗試使用不同的 PDF(10)自動向多個發件人(10 封電子郵件)發送電子郵件。 有沒有辦法在電子郵件地址旁邊的電子表格列中附加 pdf? 然后以 pdf 格式發送帶有銷售報價的電子郵件作為附件。 這可以在谷歌表中的JS中完成嗎?

感謝有人幫助我。

如果您使用的是 Google 表格,這是可能的,但您必須發揮創意。 事實上,您可以使用 google 腳本從 google 表格中使用 javascript 發送電子郵件。 我認為如果您在同一個工作簿中使用隱藏工作表獲得創意,請使用公式填充該工作表的 PDF 布局,然后將該工作表導出為 PDF 以附加到電子郵件......這是可行的。

您可能會在這里找到一些靈感。

基本從谷歌表格示例發送電子郵件在這里

因此,JavaScript 在客戶端運行。 這意味着您的代碼正在運行用戶瀏覽器。 簡而言之,您不能僅使用 JavaScript 發送電子郵件。 你將需要一台服務器來做到這一點。

例如,您可以將 Spring Boot 與 Java 一起使用,它已經有很多實現的方法可以使您的任務(即發送電子郵件)變得非常簡單。

看看http://spring.io/projects/spring-boot

您可以按照以下步驟執行此操作,

  1. 在一個谷歌驅動器文件夾中上傳 10 個附件

  2. 在您的谷歌表上添加以下腳本以獲取文件 ID

function listFilesInFolder() {

    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FileID").activate(); //The name of the google sheet is FileID in my case

    var sheet = SpreadsheetApp.getActiveSheet();
    sheet.appendRow(["File Name", "File-Id"]);

  //change the folder ID below to reflect your folder's ID (look in the URL when you're in your folder)

    var folder = DriveApp.getFolderById("*[Enter Folder ID here]*");
    var contents = folder.getFiles();

    var cnt = 0;
    var file;

    while (contents.hasNext()) {
        var file = contents.next();
        cnt++;

           data = [
                file.getName(),
                file.getId(),
            ];

            sheet.appendRow(data);
    }
}
  1. 構建一個簡單的腳本來發送電子郵件,並將您的 10 封電子郵件放在一列,並將從上述代碼生成的所有文件 ID 放在下一列。 以下是從電子表格發送電子郵件的示例腳本,
function sendEmails() {

  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Emails").activate(); // Emails is the sheet which has the email and File ID columns

  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lr = ss.getLastRow();

  var templateText =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Template").getRange(1, 1).getValue();  // Template is the sheet which has my email body

  for (var i = 2;i<=lr;i++){

    var currentEmail = ss.getRange(i, 1).getValue();  //Email IDs are on the first column for me

    var currentAttachment = ss.getRange(i, 2).getValue();    //Assuming your File IDs are on the second column


    var waiver = DriveApp.getFileById(currentAttachment);
    var liabilityWaiver = waiver.getAs(MimeType.PDF);

MailApp.sendEmail(currentEmail, subjectLine, messageBody, {attachments:[liabilityWaiver],
                                                               cc:'abc@abc.com'});  // the cc is in case you want to CC someone else on the email

我希望這有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM