匿名質問者

メールフォームにReturn Pathを設定する方法


レンタルサーバを利用して複数のドメインを設定しています。
MAILER-DAEMONのエラーメールがレンタルサーバに登録されているメールアドレスにすべて到着してしまい、各ドメインのメールフォームに登録されたメールアドレスに届きません。
各フォームに設定されているメールアドレスにReturn Pathを設定したいのですが、どのように記述したら良いですか?

open( MAIL, "|" . "$sendmail -fリターンパス -t Toアドレス");
と言うのを発見しました。
http://okwave.jp/qa/q2849083.html
この場合、
$sendmail
リターンパス
Toアドレス
には何を当てはめれば良いのでしょうか?
例えば、「$my_mail」に受信メールアドレスが設定されている場合、どのようにしたら良いですか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/09/09 11:07:11

ベストアンサー

匿名回答1号 No.1

$sendmail
sendmail(必要ならpath付で)
リターンパス
Return-Pathのアドレス
Toアドレス
Toのアドレス

そのままだと思うのですが。
ところで今sendmailを直接使ってるのですか?

他4件のコメントを見る
匿名回答1号

違います。というか私も勘違いしてました。
大本の
>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/05 23:51:27
匿名質問者

返答ありがとうございます。
その後自分でもいろいろ調べつつ作業をしてみました。

結果として、他のメールフォームを利用すると正常にエラーメールがメールフォームに登録されているアドレスに行くことがわかりました。
利用していたメールフォームがそもそもおかしかったのかもしれません。

正常に動作したメールフォームから一部を移植しようとも考えましたが、入れ替えた方が作業的にも速そうだったので、今回はそれで解決としようかと思います。

色々とアドバイスありがとうございました。

2014/09/06 09:35:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません