2013-09-23 49 views
2

閱讀的文本考慮看看提供的tutorial從與谷歌Apps腳本在電子表格發送電子郵件後,我修飾目的的給定的代碼才能夠設定電子郵件發送出去附件也是如此。谷歌Apps腳本:從一個.txt文件

即使對於Google Apps腳本的侷限性(這些文件必須位於Google雲端硬盤中,Google雲端硬盤中的所有文件(適用於任何名稱)都會從所有文件夾中驅動器)。

function sendEmails() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var startRow = 2; // First row of data to process 
    var numRows = 1; // Number of rows to process 
    // Fetch the range of cells A2:C3 
    var dataRange = sheet.getRange(startRow, 1, numRows, 3) 
    // Fetch values for each row in the Range. 
    var data = dataRange.getValues(); 
    for (i in data) { 
    var row = data[i]; 
    var emailAddress = row[0]; // First column 
    var message = row[1];  // Second column 
    var attachment = row[2]; // File name provided. 
    var subject = "Mass Email"; 
    var files = DriveApp.getFilesByName(attachment); // Get all files with name. 
    var blobs = []; // Array for attachment. 
    // Move files into blobs 
    while (files.hasNext()) { 
     var file = files.next(); 
     blobs.push(file.getAs(MimeType.PLAIN_TEXT)); 
    } 
    MailApp.sendEmail(emailAddress, subject, message, { 
     attachments: blobs, // add attachments 
     cc: "[email protected]" // CC to employer 
    }); 
    } 
} 

我第一次使用它後,但是,我知道,我需要不發送文件作爲附件,而是作爲郵件的郵件正文,一些其他的變化中(這是工作)。也就是說,我只會每次向每封電子郵件發送一封「附件」,而不是將該附件作爲附件,而是應將其內容複製到電子郵件的郵件中。附件目前是文本文件,我希望它們保持原樣,但這不是最重要的。

我不能確定的方式與谷歌Apps腳本來做到這一點。這是可能的,還是我將不得不有不同的方式發送電子郵件這些文件? (但願不是用手。)提前

感謝。

+0

這兩個限制你提到不要在存在Google Apps腳本,從驅動器文件中獲取的斑只是thexways –

+0

另外一個,是其可能包括在身體中的文本。看看郵件的API,它可以讓你建立自己的HTML體。 –

+0

爲什麼你的問題我不明白,你是如此接近你的描述......,而不是在一個陣列存儲文本只是將其作爲「信息」在同一個while循環,你就大功告成了.. 。你甚至不需要HTML或其他東西。 –

回答

2

在我最後的評論中提到,轉換您的.txt文件到谷歌文檔可以輕鬆實現。 見下文(建議)

function sendEmails() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var startRow = 2; // First row of data to process 
    var numRows = 1; // Number of rows to process 
    // Fetch the range of cells A2:C3 
    var dataRange = sheet.getRange(startRow, 1, numRows, 3) 
    // Fetch values for each row in the Range. 
    var data = dataRange.getValues(); 
    for (i in data) { 
    var row = data[i]; 
    Logger.log(row) 
    var emailAddress = row[0]; // First column 
    var message = row[1];  // Second column 
    var attachment = row[2]; // File name provided. 
    var subject = "Mass Email"; 
    var files = DriveApp.getFilesByName(attachment); // Get all files with name. 
    while (files.hasNext()) { 
     var file = files.next(); 
     var Id = file.getId(); 
     var content = DocumentApp.openById(Id).getBody().getText(); 
     Logger.log(content) 
    MailApp.sendEmail(emailAddress, subject, message+'\n'+content) 
    } 
    } 
} 
+0

非常感謝您的幫助。它似乎有點好奇,它無法輕鬆處理文本文件,但最終效果很好。 – Orion