web制作でPHPを利用している方は多いのではないでしょうか?
実際、WordPressを始めとするCMSの多くはPHPで作成されております。
PHPではメール関数が用意されておりプログラムから簡単にメール送信を行う事が出来ます。
ですが、デフォルト設定のままメール送信を行うと、送信元が下記の様になります。
「実行ユーザー@サーバー名」
その為、場合によっては迷惑メールとして認識され拒否される可能性がございます。
また、利用ドメインとサーバー名が異なる場合、バウンスメール等も受信できなります。
そこで今回はメール関数を使用する際のエンベロープFromの設定方法をご紹介します。
エンベロープFromとは
エンベロープFromとFromヘッダーは異なる役割がございます。
Fromヘッダーは、メール本文のヘッダー部分に含まれる送信者のアドレスの情報となっておりメールクライアントに表示される情報となります。
エンベロープFromはメール送信のSMTPセッション中に利用される情報となります。
その為、サーバー間でメール配送を行う場合は「エンベロープFrom」が送信元情報として扱われます。
PHPのメール関数をデフォルトのまま使用するとエンベロープFromは「実行ユーザー@サーバー名」となってしまいます。
基本的な使用方法
mail()関数の基本的な使用方法は以下となります。
$to = 'to@example.com';
$subject = '件名';
$message = '内容';
$headers = 'From: sender@example.com';
$mail_sent = mail($to, $subject, $message, $headers);
上記の様に「to」「subject」「message」「headers」を指定しmail関数を実行する事でメール送信を行う事ができます。
詳細につきましては下記公式サイトをご確認よろしくお願い致します。
エンベロープFromを指定するには
エンベロープFromを指定するには「-f」を指定し関数に組み込む必要があります。
今回のFROMアドレスである「ender@example.com」を指定する場合は以下となります。
-fsender@example.com
先程のプログラムに埋め込む場合は以下のようになります。
$to = 'to@example.com';
$subject = '件名';
$message = '内容';
$headers = 'From: sender@example.com';
$envelope = '-fsender@example.com';
$mail_sent = mail($to, $subject, $message, $headers);
以上で設定完了となります。
WordPress等のCMSを利用している場合は利用プラグイン等によりコントロールパネル上でエンベロープFromが指定できる場合がございます。