【GAS】Gmailのメールを自動的にPDF化し、Google Driveに保存する方法

a car driving down a road in the mountains

こんにちは。たろ(@tarohibi)です。

今日は、「GASでGmailの特定メールをPDF化し、Google Driveに自動保存する方法」をご紹介します。

やりたいこと

例えば、特定のメール(今回は、Stores.jpからの購入確認メール)を自動でPDF化し、Google Driveに定期的に保存したいというニーズがあるとします。

GASを使えば、これを一気に実現できます。

具体的には、以下の手順を踏むことで、メールをPDFに変換してGoogle Driveに保存します。

  • Gmailから特定のメールを検索・取得
  • メールの内容をPDFに変換
  • Google Driveの特定のフォルダにPDFを保存

それでは、詳細なコードを見ていきましょう。

完成形

以下が完成形のコードです。

これが全体のコードとなります。最後の部分では、作成したPDFをGoogle Driveに一括保存し、その後メールを送信しています。

sendMail()の詳細な内容〈特定のアドレスにメールを送る処理〉はここでは省略していますが、適宜自身の状況に合わせてカスタマイズしてください。

左端の歯車を押して、プロジェクトの設定を出します。

赤文字部分の「appsscript.json」マニフェスト ファイルをエディタで表示するをチェック。

その後エディタに戻ると、「appsscript.json」ファイルが出てきますので、その中に以下コードを書きます。

これで準備完了です。

saveEmailsToDriveOptimized関数をトリガー実行すると、任意のメールが所定フォルダの中にPDFにトリガー保存されます。

ポイント解説

それでは、いくつかのポイントをピックアップして解説します。

メールの検索・取得

Gmailからメールを検索するためのクエリは、from:hello@stores.jp subject:'ご購入ありがとうございました。'という形で設定します。これにより、Stores.jpからの「ご購入ありがとうございました。」という件名のメールを検索します。

Google Driveの特定のフォルダを指定

ここで'あなたのフォルダID'は、対象のGoogle DriveフォルダのIDに置き換えてください。フォルダIDはGoogle DriveのURLの一部として表示されます。

例えば、フォルダのURLがhttps://drive.google.com/drive/folders/1A2B3C4D5E6F7G8H9I0Jの場合、フォルダIDは1A2B3C4D5E6F7G8H9I0Jです。

メールのPDF変換

メールの本文を取得し、それをHTMLに変換します。HTMLに変換することで、後続のPDF変換処理が可能となります。

既存のファイルの確認

処理の途中で、Google Driveの特定のフォルダに同名のファイルが存在するかどうかを確認します。同名のファイルが存在する場合、そのメールの処理をスキップします。これにより、既に保存されているメールを再度保存することを防ぐことができます。

Google Driveへの保存

最後に、作成したPDFをGoogle Driveの特定のフォルダに保存します。

まとめ

以上が、このスクリプトの全体的な説明となります。

Gmailから特定のメールを検索し、その内容をPDF化してGoogle Driveに保存するという一連の処理を自動化するためのスクリプトです。Google Apps Scriptの強力な機能を使うことで、面倒な作業を自動化し、効率的に作業を進めることが可能です。

最後に、Google Apps ScriptのコードはGoogleの提供するサービス上で実行されるため、セキュリティ面でも安心です。ただし、Googleのサービスに対するアクセス権限やGoogle Apps Scriptの利用制限などに注意しながら利用することが必要です。

以上、GmailのメールをGoogle DriveにPDFとして自動保存するスクリプトの解説でした。皆様の業務効率化に少しでもお役に立てれば幸いです。次回のブログ記事でも、便利なスクリプトやツールの紹介を行いますので、お楽しみに!

ITGAS
スポンサーリンク
シェアする
たろをフォローする
お金らいふ

コメント

タイトルとURLをコピーしました