Google apps script 将所有带有指定标签(在Gmail中)的电子邮件导出到驱动器文件夹中,并将pdf链接以及主题和正文导出到电子表格中
相对较新的谷歌脚本 我想做的是Google apps script 将所有带有指定标签(在Gmail中)的电子邮件导出到驱动器文件夹中,并将pdf链接以及主题和正文导出到电子表格中,google-apps-script,google-sheets,pdf-generation,gmail-api,Google Apps Script,Google Sheets,Pdf Generation,Gmail Api,相对较新的谷歌脚本 我想做的是 选择Gmail标签中的所有指定电子邮件 将每封电子邮件另存为单独的pdf(使用主题)并保存在 google drive中的指定文件夹 生成指向该pdf的链接 保存在电子表格中 a) 日期 b) 主题 c) 普通正文 d) Html正文文本 e) 链接到每个pdf文件 以下代码正在生成点a到d function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var label = GmailApp.getUserLabelByName("MY LABEL");
var threads = label.getThreads();
for (var i=0; i<threads.length; i++)
{
var messages = threads[i].getMessages();
for (var j=0; j<messages.length; j++)
{
var msghtml = messages[j].getBody();
var msgplain = messages[j].getPlainBody();
var sub = messages[j].getSubject();
var dat = messages[j].getDate();
ss.appendRow([dat,sub,msgplain,msghtml])
}
threads[i].removeLabel(label);
}
}
函数myFunction(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“Sheet1”);
var label=GmailApp.getUserLabelByName(“我的标签”);
var threads=label.getThreads();
对于(var i=0;iYou可以通过添加/修改以下行来修改脚本:
基本上,为了将您的电子邮件导出为PDF
- 您需要先使用将其保存为文本文件
- 您需要将其转换为PDF格式
- 将其另存为新文件(这次是pdf)
要获取链接,请使用。您可以通过添加/修改以下行来修改脚本:
基本上,为了将您的电子邮件导出为PDF
- 您需要先使用将其保存为文本文件
- 您需要将其转换为PDF格式
- 将其另存为新文件(这次是pdf)
要获取链接,请使用。您是否只对电子邮件正文或附件感兴趣?您是否只对电子邮件正文或附件感兴趣?我认为在OP的目标中,可能不需要将电子邮件创建为文本文件。那么修改var textFile=DriveApp.createFile如何('email-'+sub+'-'+dat,msghtml,“text/html”);var-blob=textFile.getAs(MimeType.PDF);
tovar-blob=Utilities.newBlob(msghtml,MimeType.html,'email-'+sub+'-'+dat).getAs(MimeType.PDF);
?通过这种方式,HTML可以转换为PDF格式,而无需创建文本文件。但是,如果这不是OP想要的方向,我很抱歉。谢谢你的建议@Tanaike,这是一个好主意,因为它节省了一步。我想OP的目标是,电子邮件可能不需要创建为文本文件。那么修改电子邮件怎么样var textFile=DriveApp.createFile('email-'+sub+'-'+dat,msghtml,“text/html”);var blob=textFile.getAs(MimeType.PDF);
tovar blob=Utilities.newBlob(msghtml,MimeType.html,'email-'+sub+'-'+dat).getAs(MimeType.PDF)
?这样,HTML可以转换为PDF格式,而无需创建文本文件。但是,如果这不是OP想要的方向,我很抱歉。谢谢您的建议@Tanaike,这是一个好主意,因为它节省了一步。
var textFile=DriveApp.createFile('email-'+sub+'-'+dat, msghtml,"text/html"); //modify the file name as desired
var blob = textFile.getAs(MimeType.PDF);
var pdf= DriveApp.createFile(blob);
var pdfLink=pdf.getUrl();
ss.appendRow([dat,sub,msgplain,msghtml,pdfLink])