設計情報

投稿者: SPIRERS ナレッジ向上チーム 2023年8月25日 (金)

PHPでメール送信をする方法

PHPでメールを送信するための方法をまとめました。
メリット・デメリットなども解説しておりますので、ぜひ参考にしてください。

[方法1]非同期アクションを利用してメール送信

メール通知用のDBにAPIでデータ登録を行い、非同期アクションでメール送信する方法です。
メール送信自体はトリガ設定を利用しています。

設定方法
・メール通知用のDBを作成する
送信したいメール内容に合わせてDBには特定のフィールドを含めてください
→ 送信先メールアドレスが固定でない場合は、メールアドレスフィールドを含めてください
→ テキストエリアフィールドを含めることでAPIで登録した文言をメール文面に挿入できます

・DBに登録時非同期アクションを設定する

・メールを送信したいタイミングでAPIでレコード登録する
APIレコード登録メソッドのサンプルは以下の記事を参照ください
APIメソッドごとのサンプルコードまとめ Record / Record (bulk)

向いている利用シーン
・削除バッチなどカスタムプログラムでPHPの実行履歴を残しながら、エラー時にメール通知を行うする場合
→ スケジュールトリガのカスタムプログラムには、実行ログの保存やメール通知機能はございません

・外部サービスからAPI経由でver.2のメール通知機能を利用したい場合
→ 一括登録・更新では非同期トリガは動作しないためご注意ください

・API経由で登録/更新/削除を行う際に通知メールを送りたい場合

メリット
・トリガでメールを送信するためPHPが分からなくてもメール設定修正ができる
・DBの登録データを送信履歴として活用できる

デメリット
・トリガがレコード一括登録に対応していないため、一斉配信には向いていない
・メール送信の度にDBレコード登録があるため、定期的にデータ削除を行うなどのメンテナンスが必要になる

[方法2]APIのEXPRESSメソッドでメール送信

APIのEXPRESSメソッドを利用することによって、メールを送信する方法です。
EXPRESSメールは基本的に複数人への一斉配信を行うものですが、設定によって個人に対して送信することも可能です。

設定方法
・メール送信先のデータを格納したDBを作成する
送信先メールアドレスを格納するメールアドレスフィールドを必ず含めてください

・メールを送信したいタイミングでAPIでメール送信を行う
API EXPRESSメソッドのサンプルは以下の記事を参照ください
APIメソッドごとのサンプルコードまとめ Express Email

向いている利用シーン
・お問い合わせ登録された際に、部署DBに入っている部署に通知メールを配信する場合

・会員登録時に、会員全員に会員が追加されたことを通知したい場合
→ メールアクションでは、複数レコードへの配信や他DBへの配信はできません

・お知らせ掲載時に関連する企業にカスタムプログラムで通知メールを配信する場合
→ アプリ側でお知らせ登録した際に通知する場合、カスタムプログラムを使用する必要があります
※カスタムプログラムを使用する場合は、お知らせ情報をAPIで取得して条件に合わせてEXPRESSメソッドを実行してください

メリット
・メール送信設定がPHPのみで完結できる
・APIで直接配信予約を行うためレコードストレージを圧迫しない
・複数人への一斉送信などを行うことができる

デメリット
・APIでメールを送信するため、メール設定の変更したい場合にPHPの修正が必要になる

最後に

用途に合わせて送信方法を選んでください。
こちらの記事に関して要望などありましたら、下記の「コンテンツに関しての要望はこちら」からご連絡ください。
解決しない場合はこちら コンテンツに関しての
要望はこちら