###前提・実現したいこと
何卒お力添えをお願い致します。
コーポレートサイトのリニューアルにあたり、新たにメールフォームを設置し、お問い合わせが出来るようにしたいです。
PHP7.1、PHPMailerによるメールフォームです。
現状、特定環境かつFromとToが特定のアドレスの時のみ、メールが不着という事態が起きています。
PHPMailerでは、GMailなどによる既存メールサーバーのSMTPを介さず、自サーバーのpostfixを用いた送信となります。
(送信元、送信先ともにお客様のメールアドレスとなり、メール情報の開示を拒否されたためこのような設定となっています)
前提として、
・別の業者によってサーバーは既にVPSによって運営済み、私の会社にてコーポレートをリニューアル
・以前のコーポレートにはメールフォームが存在せず(メーラーが立ち上がっていた)
・使用するメールアドレスも既に本番運用済みで、アカウントに関する一切の情報開示は拒否されてます
・そのため、到着or不着の確認は1日1回のメール(メールフォームにて使用するアドレスとは別)でのやり取りのみ
・迷惑メールに入っているかどうかも、お客様の自己申告頼み
・メールフィルターの設定から、SMTPなどの設定まで一切不明、分かっているのはそのメールアドレスはGoogleのビジネスアカウントらしいことのみ
なお、お客様メールアドレスが hoge@fuga.co.jp
だったとして、ドメイン fuga.co.jp
はコーポレートが乗っているサーバーに紐付いています。
ネットワークやサーバー関連の知見は正直浅く、しかしながら社内にこの辺りのことが分かる人員がおらず、途方に暮れております。。
検証までは問題無かったにも関わらず、本番で急に浮上した問題のため、お客様側からも微妙な反応が返ってきておりどうしたらいいものかと。
疑わしき点、チェックするべき点だけでも構わないので、識者の皆様のお力添えを、何卒よろしくお願い致します。
###質問したいこと要約
・PHPMailerにてSMTPを使わない設定にしている場合、Fromのメールアドレスはヘッダーを付けているだけで、それがどこのサーバーであるかは関係ない、という認識で合っているか
・From(もしくはTo)のメールアドレス次第で、/var/spool/mail/root
が動いたり動かなかったりすることはあるのか
・下記問題点に対して、チェックするべき点があるか
###発生している問題・エラーメッセージ
本番サーバー かつ、FromとToが共にお客様アドレスの時 だけ メールが不着となります。
同時に送信される確認メールはFrom=お客様、To=私となるのですが、こちらは到着 します。
From=To=お客様の時だけ不着となります。この不着現象は検証環境では発生しませんでした。
現状のメール成功成否は下記のようになっています。
本番環境 | From=私 | From=お客様 |
---|---|---|
To=私 | ◯ | ◯ |
To=お客様 | ◯ | X |
検証環境 | From=私 | From=お客様 |
---|---|---|
To=私 | ◯ | ◯ |
To=お客様 | ◯ | ◯ |
※私=開発時のテストメール(普通のGoogle)
※お客様=本番にて使用する、お客様のメールアドレス(Googleビジネスらしい)
なお、From=お客様の際のみ、/var/spool/mail/root
に送ったメールと思しきものが追加されていきます。
From=私の際は、tailしていてもここに動きがありません。
また検証用のサーバーにおいてもここに動きは無く、またメールの送信は問題無く、お客様にも到着しています。
###試したこと
・もしかしてGoogleがメールサーバーではなく、自サーバーがメールサーバーになってる?と思い、postfixの設定ファイル /etc/postfix/main.cf
を確認する
→特段何も設定されておらず
###補足情報(言語/FW/ツール等のバージョンなど)
OS: CentOS6
PHP7 + PHPMailer
###本番環境と検証環境の違い
・本番環境は元より運用されていた環境となり、私の会社が関与したものではありません。
・検証環境は本番環境と同じCentOS6、PHP7をDockerにて用意したものです。
検証環境ではDockerにて構築した関係上、postfixを改めてインストールしております(CentOSのコンテナ上にpostfixが入っていないため)
###PHPMailerの設定内容
SMTPが使えないので、設定はこれだけです。
$this->Mail = new PHPMailer(); ~~~ $this->Mail->Encoding = 'base64'; $this->Mail->CharSet = 'UTF-8'; $this->Mail->isHTML(true);
件名などの設定は下記のようになっています
定数どちらも、お客様メールアドレスを指定しています
※メール送信画面がいくつかあり、そのためにクラスが変数に入っています
$this->Mail->setFrom($class::ADDRESS_FROM, $class::NAME_FROM); // From $this->Mail->addAddress($class::ADDRESS_TO, $class::NAME_TO); // TO
###postfixログ
指摘されてpostfixのログの存在を知りました。。
送信成功しているFrom=お客様、To=私のパターン
Mar 31 15:10:00 xxxxxxxx postfix/qmgr[1235]: 9FB60C0C09: from=<私のアドレス@gmail.com>, size=1990, nrcpt=1 (queue active) Mar 31 15:10:00 xxxxxxxx postfix/smtp[6172]: connect to gmail-smtp-in.l.google.com[2404:6800:4008:c00::1b]:25: Network is unreachable Mar 31 15:10:00 xxxxxxxx postfix/smtp[6173]: connect to gmail-smtp-in.l.google.com[2404:6800:4008:c07::1b]:25: Network is unreachable Mar 31 15:10:01 xxxxxxxx postfix/smtp[6172]: 98250C0C0B: to=<私のアドレス@gmail.com>, relay=gmail-smtp-in.l.google.com[108.177.97.26]:25, delay=0.92, delays=0.05/0.01/0.45/0.41, dsn=2.0.0, status=sent (250 2.0.0 OK 1490940601 y2si4135767pli.71 - gsmtp)
不着のFrom=To=お客様のパターンと思しきログ
Mar 31 15:35:09 xxxxxxxx postfix/qmgr[1235]: 25236C0C04: from=<root@お客様ドメイン>, size=391, nrcpt=1 (queue active) Mar 31 15:35:09 xxxxxxxx postfix/local[6232]: 25236C0C04: to=<root@お客様ドメイン>, orig_to=<info@お客様ドメイン>, relay=local, delay=82, delays=82/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
※FromもToも、info@お客様ドメイン
で設定していたはずなのですが。。
httpdのログ→怪しきログなし
PHPMailerのログ→そもそも存在せず
どのログにもこれ以上怪しそうなログは残っていないようでした。。
回答1件
あなたの回答
tips
プレビュー