• 締切済み

phpからのメール送信

サーバにはpostfix/phpがインストールされており mb_send_mail関数を使ってメールを送信しております。 example.comというドメインを例として説明すると fromがtest@example.comというメールアドレスでは問題なく送ることができるのですが、 ドメインをexample.com→mail.example.comと変更し、test@mail.example.comというアドレスで送ろうとすると maillog上はtest@mail.example.comから送っていることになっているのですが、 メーラーで受信するとformがtest@example.comになっております。 サブドメインのmail.example.comから送るようにするにはどのようにしたらよろしいでしょうか? main.cf virtual_alias_domains=example.com mail.example.com virtual_alias_maps = hash:/etc/mail/virtual /etc/mail/virtual test@example.com test test@mail.example.com test

みんなの回答

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.2

#1 です。 > $additional_headers = "From: ".$from; > $additional_parameter = "-f".$from; で同じ内容を設定してるってことはpostfixのアドレス書き換えが作用してるってことですね。 多分。 参考URL参照。 (sendmailコマンドで試してみればphpの問題かpostfixの問題かはっきりします。) ちょっと自分の環境で試してみたのですが、再現できませんでした。 気になることは以下の3点。 ・アドレスマスカレードに example.com が定義されている ・mydestination に example.com が定義されている ・DNSに mail.example.com が定義されていない 解決策としてはどの『アドレス書き換え』で書き換わっているのかによりますね。 他アプリ等に影響がある可能性がありますので。

参考URL:
http://www.postfix-jp.info/trans-2.3/jhtml/ADDRESS_REWRITING_README.html
  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.1

想像ですが、エンベロープのfromはmail.example.comになってるけど、 メールヘッダのfromはexample.com testになってるのではないでしょうか? mb_send_mail()で$additional_headersを指定していませんか? Windows 環境ならphp.iniかもしれません。

参考URL:
http://jp2.php.net/manual/ja/function.mail.php
tetsu-jin
質問者

補足

ご回答、ありがとうございます。 $from = test@mail.example.com $additional_headers = "From: ".$from; $additional_parameter = "-f".$from; mb_send_mail($to, $subject, $body, $additional_headers,$additional_parameter); と設定してあるので、 メールヘッダーもtest@mail.example.comとなっているのですが受信するとtest@example.comになっています。 受信したヘッダー部分には"mail.example.com"の記述がないですね…。

関連するQ&A