Postfixを利用したメールフォームからのメールを受信できない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 142

sato_k

score 4

前提・実現したいこと

Webサイトの問い合わせフォームから送信完了画面に到達した時点でメール送信を行う仕組みを構築しています。
Postfixを利用して送信をしようとしていますが、 うまく受信することができません。
問い合わせフォームは正しく動作している(送信完了画面まで遷移することができる)状態です。

現在のDNS設定

さくらVPSをWebサーバー、さくらのレンタルサーバーをメールサーバーにしたい
・MXレコード 10 xxx.sakura.ne.jp.(さくらレンタルサーバーの初期ドメイン)
・Aレコード  xxx.xx.xxx.xxx(さくらVPSのIPアドレス)

VPSの状態

・CentOS 7
・Webサイト用のサーバーとして構築済「https://example.com/」
・ssh設定済
・Postfix、Dovecot導入済

設定ファイルの編集

vi /etc/postfix/main.cf

myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain

inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = 192.168.0.0/24, 127.0.0.0/8

home_mailbox = Maildir/

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination

smtpd_tls_auth_only = yes
smtp_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = $smtp_tls_protocols
smtp_tls_mandatory_protocols = $smtp_tls_protocols
smtpd_tls_mandatory_protocols = $smtp_tls_protocols

発生している問題・エラーメッセージ

上記設定でWebサイトの問い合わせフォームから送信した後のメールログです
「example@example.com」(メールフォーム側で設定している送信用アドレス)と、
フォームに入力した人に送る控えメール(今回はtest@test.jpとしました)で、
test@test.jpには控えメールがくるのですが、example@example.comからのメールを受け取ることができていません。
(from欄が「apacheになってしまっているのが謎です…)

Jun 13 11:43:11 tk2-408-45171 postfix/pickup[7861]: 0E5F868135D9: uid=48 from=<apache>
Jun 13 11:43:11 tk2-408-45171 postfix/cleanup[7973]: 0E5F868135D9: message-id=<20190613024311.0E5F868135D9@mail.example.com>
Jun 13 11:43:11 tk2-408-45171 postfix/qmgr[7862]: 0E5F868135D9: from=<apache@example.com>, size=1595, nrcpt=1 (queue active)
Jun 13 11:43:11 tk2-408-45171 postfix/pickup[7861]: 1161C680EC29: uid=48 from=<apache>
Jun 13 11:43:11 tk2-408-45171 postfix/cleanup[7973]: 1161C680EC29: message-id=<20190613024311.1161C680EC29@mail.example.com>
Jun 13 11:43:11 tk2-408-45171 postfix/qmgr[7862]: 1161C680EC29: from=<apache@example.com>, size=1875, nrcpt=1 (queue active)
Jun 13 11:43:11 tk2-408-45171 postfix/local[7977]: 0E5F868135D9: to=<example@example.com>, relay=local, delay=0.02, delays=0.02/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Jun 13 11:43:11 tk2-408-45171 postfix/qmgr[7862]: 0E5F868135D9: removed
Jun 13 11:43:11 tk2-408-45171 postfix/smtp[7978]: 1161C680EC29: to=<test@test.jp>, relay=test.jp[test.jpのIPアドレス]:25, delay=0.34, delays=0/0.01/0.18/0.15, dsn=2.0.0, status=sent (250 2.0.0 x5D2hBux015004 Message accepted for delivery)
Jun 13 11:43:11 tk2-408-45171 postfix/qmgr[7862]: 1161C680EC29: removed
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • CHERRY

    2019/06/13 15:19

    > (from欄が「apacheになってしまっているのが謎です…)

    PHP から送信しているのであれば、PHP のプログラムの中で From ヘッダを設定していない場合に Webサーバーの実行ユーザー( apache )が From になるのはよくあることです。

    キャンセル

  • scsi

    2019/06/13 20:38

    その用途だとvpsにdovecotはいらないですね。

    キャンセル

  • sato_k

    2019/06/14 11:34

    apacheになっているのが問題かと思っていたのですが、気にしなくて良いとわかって安心しました…!

    dovecotも一旦アンインストールしました。

    キャンセル

回答 1

checkベストアンサー

+1

postfix/local[7977]: 0E5F868135D9: to=<example@example.com>, relay=local, delay=0.02, delays=0.02/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)

mydestination に $mydomain (example.com) が含まれているため、example@example.com 宛のメールを Postfix が受信、スプールしています。
Postfix から外部に送信したいのであれば、mydestination に example.com を含めないようにします。

あと、smtpd_recipient_restrictions も変更が必要かもしれません。
Webフォームのプログラムから Postfix に SMTP-Auth で認証しているのであれば、既存の permit_sasl_authenticated で許可されますが、そうではないのであれば、permit_mynetworks などで許可する必要があると思います。

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
  ↓
mydestination = $myhostname, localhost.$mydomain, localhost

smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
  ↓
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/14 11:09

    丁寧でわかりやすいご回答ありがとうございます!
    おっしゃる通りに実行したら、解決することができました。
    本当にありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.22%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る