人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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


●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー
$sendmail
sendmail(必要ならpath付で)
リターンパス
Return-Pathのアドレス
Toアドレス
Toのアドレス

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


匿名質問者さんのコメント
返答ありがとうございます。 >$sendmail >sendmail(必要ならpath付で) これはメールフォームにある $mailprog = '/usr/sbin/sendmail'; これでしょうか? >リターンパス >Return-Pathのアドレス これがよくわからないのですが何を記載したら良いのでしょうか? >Toアドレス >Toのアドレス これはエラーメールを受け取るアドレス($tomail)でしょうか? >ところで今sendmailを直接使ってるのですか? 直接使っているという表現がよくわからないのですが…

匿名回答1号さんのコメント
>>$sendmail >>sendmail(必要ならpath付で) >これはメールフォームにある >$mailprog = '/usr/sbin/sendmail'; >これでしょうか? そうです。 >>リターンパス >>Return-Pathのアドレス >これがよくわからないのですが何を記載したら良いのでしょうか? 何をと言われても…… 「各フォームに設定されているメールアドレスにReturn Pathを設定したい」とはありますが…… てにをはは微妙ですけど…… >>Toアドレス >>Toのアドレス >これはエラーメールを受け取るアドレス($tomail)でしょうか? 普通に宛先ですけど……必須なのであると思うのですが…… >>ところで今sendmailを直接使ってるのですか? >直接使っているという表現がよくわからないのですが ライブラリとか別のプログラムとか使って間接的に使う事も多いので。

匿名回答1号さんのコメント
じゃっかん確信が持てないが「各フォームに設定されているメールアドレス」=$tomail=メールの宛先で、それを=エラーメールを受け取るアドレス=Return-Pathにしたい、ということでしょうか? それは送信出来ずエラーとなった宛先になるわけですが……

匿名質問者さんのコメント
すみません。語句がよく分かって無いので質問が変になっているかもしれません。 各ドメインで利用しているフォームの不達エラーメールがサーバのメインのメールアドレスに届いていて、これを各ドメインのメールアドレス(フォームに登録してあるメールアドレス)に届くようにしようとしています。 サーバ運営会社に尋ねた所、「各フォームにReturn Pathを設定してください(あとの設定は自分で調べてください)。」と言われました。 現在利用中のフォームの中に以下のものを見つけました。 *多分、自分に送るもの 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"); また、 $mail_pass = '/usr/sbin/sendmail'; $mail_to = 'mail@hogehoge.com'; $mail [フォームの相手のメールアドレス] です。 この場合、相手へのコピーメールを発信する時に"それが届かなかった場合にここにエラーメールを送る"と言う意味で、 *多分、相手へのコピーメールの部分 open(MAIL,"| $mail_pass -t $mail_to -f $mail") || &error("Can't do sendmail"); とする、という事で合っているでしょうか?

匿名回答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は適切に設定されているが、別の要因でエラーメールが帰ってきてるか。

匿名質問者さんのコメント
返答ありがとうございます。 その後自分でもいろいろ調べつつ作業をしてみました。 結果として、他のメールフォームを利用すると正常にエラーメールがメールフォームに登録されているアドレスに行くことがわかりました。 利用していたメールフォームがそもそもおかしかったのかもしれません。 正常に動作したメールフォームから一部を移植しようとも考えましたが、入れ替えた方が作業的にも速そうだったので、今回はそれで解決としようかと思います。 色々とアドバイスありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ