レンタルサーバを利用して複数のドメインを設定しています。
MAILER-DAEMONのエラーメールがレンタルサーバに登録されているメールアドレスにすべて到着してしまい、各ドメインのメールフォームに登録されたメールアドレスに届きません。
各フォームに設定されているメールアドレスにReturn Pathを設定したいのですが、どのように記述したら良いですか?
open( MAIL, "|" . "$sendmail -fリターンパス -t Toアドレス");
と言うのを発見しました。
http://okwave.jp/qa/q2849083.html
この場合、
$sendmail
リターンパス
Toアドレス
には何を当てはめれば良いのでしょうか?
例えば、「$my_mail」に受信メールアドレスが設定されている場合、どのようにしたら良いですか?
そのままだと思うのですが。
ところで今sendmailを直接使ってるのですか?
違います。というか私も勘違いしてました。
2014/09/05 23:51:27大本の
>open( MAIL, "|" . "$sendmail -fリターンパス -t Toアドレス");
これが違ってます。"-t"か"Toアドレス"かどちらか片方だけが必要です。
>open(MAIL,"| $mail_pass -t -f $mail_to") || &error("Can't do sendmail");
>open(MAIL,"| $mail_pass -t -f $mail") || &error("Can't do sendmail");
それぞれ元々Return-Pathが設定されてます(上は$mail_to、下は$mail)
あなたの推測(多分○○)があっているなら、送信先がエラーメールの送信先になっていて、エラー時にエラーメールが送れなくて(エラーになって)postmaster(≒レンタルサーバの管理者アドレス?)に届いているんでしょう。
それならば、下の"$mail"は"$mail_to"が正解です。
また、今回の質問では触れられていないのですが上も同様なので、上の"$mail_to"は"$mail"が正解('mail@hogehoge.com'へ送れなければ「フォームの相手のメールアドレス」にエラーメールを送る)と思います。
そんなわけで、この二行は入れ替えるのが正解ですね。あなたの推測(多分○○)があっているなら、という条件付きですが。
もしくはあなたの推測が間違えていて、Return-Pathは適切に設定されているが、別の要因でエラーメールが帰ってきてるか。
返答ありがとうございます。
2014/09/06 09:35:21その後自分でもいろいろ調べつつ作業をしてみました。
結果として、他のメールフォームを利用すると正常にエラーメールがメールフォームに登録されているアドレスに行くことがわかりました。
利用していたメールフォームがそもそもおかしかったのかもしれません。
正常に動作したメールフォームから一部を移植しようとも考えましたが、入れ替えた方が作業的にも速そうだったので、今回はそれで解決としようかと思います。
色々とアドバイスありがとうございました。