見出し画像

【GAS】でGmailを送信する!

GoogleAppsScript を使って、プログラム的に Gmail からメールを送信できます。
この記事では、Gmail からメールの送信の仕方を説明しております。


Gmail からメールを送信するには

GoogleAppsScript を使って Gmail からメールを送信するには、

GmailApp.sendEmail(送信先アドレス、件名、本文、(他オプション(任意))

を使います。

これは、Gmail を扱う際に使用するクラスである「GmailApp クラス」のメソッドを使って送信できるのです。

引数

  • 送信先アドレス(文字列)

  • 件名(文字列)

  • 本文(文字列)

  • オプション(辞書型)

なお、引数のオプションとは、メールの基本的な情報となる送信先アドレス、件名、本文以外の情報をつけたい時に指定するものになりますので、無くても良いものになります。

ここで、詳しい説明の前にどの様なコードになるか示します。

  • オプションを指定しない場合

// 送信先アドレスの設定
let recipient = 'sample_A@e_mail.com, sample_B@e_mail.com';

// 件名の設定
let subject = '初GASでメール送信';

// 本文の設定
let body = 'このメールは、初めてGASを使って送信されたメールです。';

// メールを送信
GmailApp.sendEmail(recipient, subject, body);
  • オプションを指定した場合

// 送信先アドレスの設定
let recipient = 'sample_A@e_mail.com, sample_B@e_mail.com';

// 件名の設定
let subject = '初GASでメール送信';

// 本文の設定
let body = 'このメールは、初めてGASを使って送信されたメールです。';

// オプションの設定
let option = {cc: 'sample_c@e_mail.com', noReply: true};

// メールを送信
GmailApp.sendEmail(recipient, subject, body, option);

ここからは、このメソッドの引数について個別に説明していきます。

送信先アドレス

  • メールアドレスを文字列で指定します。

  • こちらの引数は必須です。

  • 複数のメールアドレスを指定したい場合は、文字列の中で、メールアドレスごとの間に半角の「,」を挟みます。

送信先が一つの場合

let RECIPIENT = 'sample_A@e_mail.com';
GmailApp.sendEmail(RECIPIENT, subject, body);

送信先が複数の場合

let RECIPIENT = 'sample_A@e_mail.com, sample_B@e_mail.com, sample_C@e_mail.com';
GmailApp.sendEmail(RECIPIENT, subject, body);

件名

  • 件名を文字列で設定します。

  • 文字数制限が半角で250文字までです。

件名の設定例

let SUBJECT = "サンプルの件名";
GmailApp.sendEmail(recipient, SUBJECT, body);

本文

  • 本文を文字列で書きます。

本文の設定例

let BODY = "はじめまして、こちらはサンプルの本文になります。";
GmailApp.sendEmail(recipient, subject, BODY);

オプション

送信先アドレス、件名と本文のメールを送る際の必須の要素の他に任意の要素(オプション)を設定することができます。

その内容として、

  • 「Bcc、Cc」(bcc, cc)

  • 「送信元表示名」(name)

  • 「返信先の指定」(replyTo)

  • 「添付データ」(attachements)

  • 「HTML メール」(htmlBody, inlineImages)

また下の要素は、Google Workspace アカウントを持っている方向けのものになります為、説明を省略させて頂きます。

  • 「送信元のアドレスを指定」(from)

  • 「返信不可」(noReply)

オプションの指定の仕方

オプションは、要素名をキーにした辞書型のオブジェクトで指定します。

let options = {
  /*要素名*/: /*内容*/,
  /*要素名*/: /*内容*/,
  ...
}

GmailApp.sendEmail(recipient, subject, body, options);

それでは、各要素ごとの設定の仕方を見てみましょう。

Bcc, Cc (bcc, cc)

  • 指定したいメールアドレスを文字列で指定

  • 「送信先」の指定の仕方の様に、複数のメールアドレスを指定したい場合は、文字列の中でメールアドレスごとの間に半角の「,」で挟む。

  • Bcc, Cc 共に指定の仕方は同じ

Bcc, Cc の設定例

let options = {
  cc: 'sample_d@e_mail.com, sample_e@e_mail.com',
  bcc: 'sample_f@e_mail.com'
}

GmailApp.sendEmail(recipient, subject, body, options);

「送信元表示名」(name)

  • 受信したメールの送信者の名前の設置

  • 何も設定していない場合は、Google のユーザー名

  • 表示名を文字列で指定

送信元表示名の設定例

let options = {
  name: "サンプルくん"
}

GmailApp.sendEmail(recipient, subject, body, options);

「返信先の指定」(replyTo)

  • メールを返信すると「指定された返信先」になる

  • 受信したメールアドレスと返信先のメールアドレスが違うものにできる

  • 指定した返信先のメールアドレスは文字列

返信先の設定例

let options = {
  replyTo: 'sample_replyTo@e_mail.com'
}

GmailApp.sendEmail(recipient, subject, body, options);

「添付データ」(attachments)

  • 画像、PDF やテキストファイルのデータをメールに添付

  • データを設定するには、データを Blob データとして指定しなければならない

  • 指定する場合、Blob データのリストとして

メールの添付データは Blob データとして指定しなければならないですが、Blob とは何かを下の記事で紹介していますので、よくわからない方はご確認ください。

添付データの設定例

let options = {
  attachments: imgBlob
}

GmailApp.sendEmail(recipient, subject, body, options);

「HTML メール」(htmlBody, inlineImages)

メールを HTML で作成できます。HTML のみで作成されるものと、HTML に加えて画像も挿入された HTML メールが作成できます。それぞれ分けてみてみましょう。

画像なし HTML メール

  • HTML は文字列として作成し、オプションの「htmlBody」という要素で設定

  • html メールとして html をオプションとした場合、本文内容は無視されるので、引数の body は「null」や「''」にしておく

// htmlメール用のHTMLを設定
let html = '<p>これは<strong>HTML</strong>で書かれたメールです。</p>'

// オプションの設定
let options = {
  htmlBody: html
}

// HTMLメールを送信
GmailApp.sendEmail(recipient, subject, null, options);

画像あり HTML メール

HTML のメールに画像が入っているものを作成したい場合は、オプション内の要素の設定と、HTML 中の「img タグ」内の src の値の設定方法を知る必要があります。

<オプション内での設定>

  • オプションの”inlineImages”の項目で「画像のキーワード(任意)」と、「画像の Blob データ」を合わせた辞書型で指定

let options = {
  inlineImages: {sampleImgKey: imgBlob}
}

< HTML 中の「img タグ」内の src の値の設定>

  • オプション内で設定した「画像のキーワード」を src に設定

  • src には「"cid:画像のキーワード"」という形式で設定する

let html = '<img src="cid:sampleImgKey">'

画像あり HTML メールの作成例

// htmlメール用のHTMLを設定
  let html = '<p>これは<strong>HTML</strong>で書かれたメールです。<u>下の画像をHTMLに挿入。</u><br><img src="cid:sampleImgKey">'

// オプションの設定
let options = {
  htmlBody: html,
  inlineImages: {sampleImgKey: imgBlob}
}

// 画像ありHTMLメールを送信
GmailApp.sendEmail(recipient, subject, null, options);

いいなと思ったら応援しよう!