当サイトで配布しているメールフォームプログラムでは、サイト管理者は「自分のメールアドレス」をconfig.phpの中で設定する仕組みになっています。
具体的にはconfig.phpの8行目の以下の部分で設定します。
//【必須】 自分のメールアドレスの設定 -- 複数のメールアドレスに送信したい場合は、以下の行をコピーして増やしていけばOKです。行頭の//を消せば有効となります。いくつでも追加可能。 --
$rm_send_address[] = 'aaa@example.co.jp';
特に、上記設定でGmailのメールアドレスを記入すると、メールが届かないケースが多々あるようです。(ユーザーからの報告で把握しました)
そのような症状が起きた時はこのページを読むと解決できるかもしれません。
また、メールを受信できる場合でも以下のような警告が表示されるケースもあります。
その症状の原因は「メールフォームでメールが届かない時にチェックすべきポイント」で記載した通りなのですが、これを回避するための設定をバージョン8.1から追加しましたのでここで解説します。
確認事項:送信されるメールは2種類あります
このメールフォームプログラムで送信されるメールには、
- サイト管理者へのメール
- フォーム入力者への自動返信メール
の2種類があり、ごっちゃになって考えてしまいやすいため、整理しながら順番に見ていきます。
サイト管理者へ送信されるメールの流れ
まず、Webサーバーが存在し、そこにあなたのサイトがあるとします。
ここでは仮に、そのサイトのドメインが「example.com」だと仮定して話を進めます。
次に、あなたはそのサーバーにメールフォームプログラムを設置します。
そして誰かがメールフォームに入力をしてフォームを送信すると、メールが受信サーバーに向けて送信されます。
ここでは仮に、フォーム内のメールアドレス欄には「aaa@test.com」と入力したとします。
この時、サイト管理者に向けて送信されるメールの「送信元サーバー」と「送信元アドレス」は以下のようになり、両者のドメインが一致しません。
- 送信元サーバーは、example.com
- 送信元アドレスは、aaa@test.com
(フォームのメールアドレス欄に入力したもの)
このように上記2つのドメインが一致しないと、受信側の迷惑メールフィルタで「なりすましメール」の判定を受けやすくなり、場合によっては自動的にそのメールを拒否・削除をしているケースがあります。
昔からGmailはそのあたりのフィルタが厳しく、2022年に入ってからさらに厳しくなったようです。
【補足説明】
実際の運用上では、フォーム入力者がそのサーバーのドメインのメールアドレス(上記例だとexample.comのメールアドレス)を入力するなんてことはまずあり得ません。
そんなことが起きるのは、サイト管理者本人がテスト送信をする時だけでしょう。
つまり、上記の2つが一致することはほぼありません。
でも受信するメールサーバーがGmailのようによほど厳しくない限りは、案外普通にメールを受信できるはずです。
フォーム入力者へ送信される自動返信メールの流れ
フォーム入力者へ送信される自動返信メールについても全体の流れは上記と同じです。
ただし「送信元サーバー」と「送信元アドレス」は少しだけ異なり、以下のようになります。
- 送信元サーバーは、example.com
- 送信元アドレスは、config.php内の8行目で設定したメールアドレス
(このページの冒頭で紹介したコード部分)
つまり、config.phpで設定する「自分のメールアドレス」をそのサーバーのドメインと合わせておけば両者のドメインは一致するため、自動返信メールはきっと相手に届くでしょう。
もし両者が一致しないメールアドレスを設定した場合、自動返信メールが届くかどうかは受信側の迷惑メールフィルタの厳しさ次第となります。
バージョン8.1で新たに追加された設定項目の説明
状況の整理ができたので、ここからが本題です。
メールフォーム本体のバージョン8.1からはconfig.phpの中に以下のような新たな設定項目があります。
説明文が長々とありますが、設定を書くのは最後の1行のみです。
//【任意】 自分(サイト管理者)や相手(フォーム入力者)に届くメールの送信元アドレス -- 複数設定は不可 --
// ( 補足説明 )
// 通常これは記入する必要はありません。以下の初期状態のように空欄のままにしておけばOK。
// なりすまし判定を受けてメールが受信できない場合にのみ、以下のページを参考にして設定すると良いでしょう。
// https://www.1-firststep.com/archives/15075
$rm_from_address = '';
上記には設置するサーバーのドメインと同一ドメインのメールアドレスを記入してください。ここは非常に重要です。
もし設置サーバーのドメインが「example.co.jp」なら、上記には「aaa@example.co.jp」とか「tani@example.co.jp」のようなメールアドレスを記入するのです。
そうすれば「送信元サーバー」と「送信元アドレス」の両方のドメインを一致させることができますので、受信する側で拒否される可能性はほぼなくなるでしょう。
【補足説明1】
ちなみに、ここで記入したメールアドレスはあくまでも「送信元」として使用されるだけであり、メールが届くわけではありません。
なのであくまでも「サーバーのドメインと同一ドメイン」であるかどうかを基準として設定すればOKです。
【補足説明2】
サーバーによっては、そのサーバーで作成されていないメールアドレスからの送信ができない可能性があるので、上で記入したメールアドレスは使わないにしてもサーバー管理画面で新規作成しておくと無難です。