GMail で受信した (Amazon からの) レシートを Dropbox に自動的に保存しようとしています。だから私はスクリプトを書いた:
- 特定のラベルが付いたメールを自動的に選択する
- メールの本文をhtmlに変換します
- html を pdf に変換します
- 本文と添付ファイルの PDF を IFTTT にメールで送信します (添付ファイルは自動的にドロップボックスに保存されます)。
- 一時ファイルを削除します
- ラベルを削除します
スクリプトは機能して bodydochtml を生成しますが、PDF 変換と電子メールは機能しません。私はこのスクリプトを何時間も見つめています。スクリプトのどこにエラーがありますか?
ありがとうございました!
Function send_Gmail_as_PDF(){
var gLabel = "#Receipt";
var thread = GmailApp.search("label:" + gLabel);
for (var x=0; x<thread.length; x++) {
var messages = thread[x].getMessages();
for (var y=0; y<messages.length; y++) {
var attach = messages[y].getAttachments();
var body = messages[y].getBody();
// Create an HTML File from the Message Body
var bodydochtml = DocsList.createFile('body.html', body, "text/html")
var bodyId=bodydochtml.getId()
// Convert the HTML to PDF
var bodydocpdf = bodydochtml.getAs('application/pdf').getBytes();
// Does the Gmail Message have any attachments?
if(attach.length>0){
var file=DocsList.createFile(attach[0]);
var pdf=file.getAs('application/pdf').getBytes();
var attach_to_send = {fileName: 'pdftest.pdf',
content:pdf, mimeType:'application/pdf'};
var body_to_send = {fileName: 'body.pdf',
content:bodydocpdf, mimeType:'application/pdf'};
// Send the PDF to any email address
MailApp.sendEmail('myemail@gmail.com',
'transfer email as pdf : body & attachment',
'see attachment', {attachments:[attach_to_send,body_to_send]});
// Trash the temporary PDF and HTML files
file.setTrashed(true);
DocsList.getFileById(bodyId).setTrashed(true)
}
}
}
// Message Processed; Remove the Google Drive Label
GmailApp.getUserLabelByName(gLabel)
.removeFromThread(thread[x]);
}