概要
Qiita質問に「ドキュメントの内容をそのままメールで送りたい」と言うのがあり、確かに出来たら便利だなぁ~と挑戦してみた。
Blobで変換したり、HTMLをgetTextすればサクっと解決するのかと思ったら、意外と面倒な手順が必要だったみたい。
質問者の方が納得する答えかどうかはさておき、割りと上手くできたので質問へ返信&記事投稿^^
ドキュメントと送信結果
とりあえずドキュメントで適当に文字を装飾してみた。
このドキュメントを元にGASでメール送信したのがコチラ。
ちゃんと装飾もリンクも活きてる!
良いんでない?
コード
ドキュメントのIDからHTMLファイルを出力するURLを作成 ⇒ OAuth対応してUrlFetchでgetContentText ⇒ HTMLメール送信。と言う流れ。
function doc_mail() {
var id = 'ドキュメントのID';
var url = 'https://docs.google.com/feeds/download/documents/export/Export?id=' + id + '&exportFormat=html';
var storageUsed = DriveApp.getStorageUsed(); //これが無いと認証エラー
var param = { method: 'get',
headers: {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()},
muteHttpExceptions: true}; //muteHttp~はエラー回避用
var html = UrlFetchApp.fetch(url, param).getContentText();
MailApp.sendEmail({ to: 'メールアドレス',
subject: '件名',
htmlBody: html});
}
HTMLタグが良く分からないから、メルマガとかリッチテキストで送りたい時に便利かも^^)b