Google関連

[Google Apps Script]Googleドキュメント文書をPDFに変換してメール送信する

先日Twitterで @TsujiKenzo さんが下記のようにツイートされていました。送信先のシステムがShift-JISでメールを受け取る仕様で、GASからのメール送信でお困りのようです。

下記のようにAdvanced Gmail Serviceを使用することで、MailAppクラスよりも細かな制御ができるのですが、私自身ヘッダーの指定やら文字化けやらで苦しんだ記憶があります。

//Advanced Gmail Service使用
function myFunction() {
  let contents = "To: (送信先メールアドレス)\n";
  contents += "Subject: =?iso-2022-jp?B?GyRCJUYlOSVIJWEhPCVrGyhC?=\n"; //テストメール
  contents += "Content-Type: text/plain; charset=iso-2022-jp\n";
  contents += "Content-Transfer-Encoding: 7bit\n\n";
  contents += '$B$"$$$&$($*(B'; //あいうえお
  
  const msg = Gmail.newMessage();
  msg.raw = Utilities.base64EncodeWebSafe(contents);
  Gmail.Users.Messages.send(msg, "me");
}

そこで今回は、代替案として文字化けする日本語の本文をPDFに変換し、メールに添付して送信するスクリプトをご紹介します。

function sendPDF() {
  const fileName = "SampleDocument";
  let body = "お世話になっております。\n";
  body += "弊社製品〇〇へのお問い合わせありがとうございました。\n\n";
  body += "3営業日以内に担当者よりご連絡いたしますので、今しばらくお待ちくださいませ。";

  //Docs文書を作成してPDF変換
  const doc = DocumentApp.create(fileName);
  doc.getBody().setText(body);
  doc.saveAndClose();
  const pdf = DriveApp.createFile(doc.getAs("application/pdf")).setName(fileName + ".pdf");

  //PDFを添付してメール送信
  MailApp.sendEmail(
    "(送信先メールアドレス)", //To
    "TEST MAIL", //Subject
    "Please refer to the attachment.", //Body
    {
      attachments: pdf
    }
  );

  //不要になったファイルを削除
  DriveApp.getFileById(doc.getId()).setTrashed(true);
  DriveApp.getFileById(pdf.getId()).setTrashed(true);
}

仕組みはシンプルで、本文をGoogleドキュメント文書として一時的に作成してPDFに変換、添付ファイルとしてメール送信しているだけです。

添付ファイル扱いになってしまいますし、送信先によっては受け取りが難しいかもしれませんが、“とりあえず内容を確認してもらいたい!”といった用途では使えますので、文字化けにお困りの方は試してみてはいかがでしょうか。

Power Automate DesktopのXMLアクションを使ってみた。前のページ

2021年7月の人気記事次のページ

関連記事

  1. Google関連

    [Google Apps Script]URL Shortener APIを使って短縮URLを取得す…

    2015/7/14 追記:いつの間にかAPIの呼び出しにAPI…

  2. Google関連

    [Google Apps Script]認証が必要なウェブアプリケーションを外部から実行する

    Google Apps Scriptでは、作成したコードをウェブアプリ…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP