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. オトカドール

    【オトカドール】あそべるお店マップ「オトカマップ」を作ったよ。

    当ブログで何度も取り上げているオトカ♥ドールですが、公式サ…

  2. Google関連

    [Google Apps Script]jQuery UIのDatepickerを使ってスプレッドシ…

    「この記事のようにjQuery UIのDatepickerを使ってスプ…

  3. Microsoft Graph

    [Google Apps Script]Microsoft Graph APIを使ってMicroso…

    Microsoft Graph APIを使って、OneDriveにある…

  4. Google関連

    [Google Apps Script]insertTextBoxメソッドでスライドにテキストボック…

    昨年の9月にスライド上にテキストボックスを挿入するスクリプトについて記…

  5. Google関連

    スプレッドシートをWeb APIにできるサービスを使ってみた

    ※ 本記事は@kuwazzyさんの記事に続く「Web API Adve…

  6. Google関連

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

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

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP