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]Google スライドでスクリプトを実行する

    最近私の周りでPowerPoint VBAがひっそりと流行中です。…

  2. Google関連

    [Google Apps Script]CLIツール「clasp」を試してみました。

    今年の初めに話題になった、GASのCLI(Command Line I…

  3. Office関連

    CDOを使ってGmail送信を行うVBAマクロ(UTF-8対応版)

    2年ほど前にCDOを使ってGmail送信を行うVBAマクロについて記事…

  4. Office関連

    Google翻訳の言語自動検出機能を追う

    「Google TTSで文字列を読み上げるマクロ」でGoogle翻訳の…

  5. Google関連

    Google Sheets API v4が登場しました。

    「Google Apps Developer Blog: New wa…

  6. AppSheet

    AppSheetとGoogle Apps Scriptとの連携機能を試してみました。

    当ブログでも2年ほど前に取り上げたことがある(下記記事ご参照)「App…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP