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. Power Automate

    Google Apps ScriptとPower Automateの連携事例紹介

    今回の記事は、ガイアックスさん主催のイベント「Google Apps …

  2. Google関連

    [Google Apps Script]スプレッドシートのセル範囲に指定した値が含まれているかを判定…

    先日、もり(@moripro3)さんから、「スプレッドシートの二次元配…

  3. Google関連

    [Google Apps Script]マクロの記録のショートカット情報の保存先

    Google スプレッドシートには、Web版ExcelのOffice …

  4. Google関連

    [Google Apps Script]OAuth認証(2.0)が必要なWeb APIを利用する。

    前回の記事ではGoogle Apps Scriptを使ってWebアプリ…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP