プロが教える店舗&オフィスのセキュリティ対策術

Vine Linuxの自宅サーバでCGIやPHPのメール自動送信スクリプト(メールフォームやメルマガやブログのコメントなどなど・・・)で、Return-Pathを設定しないで送信すると、なぜかReturn-Pathがrootならまだ良いのですがそのスクリプトとは全く関係ない普通のユーザーのメールアドレスが設定されてしまいます・・・ちなみに普通のユーザーは自分1人だけなので自分のプライベートアドレスなわけですが・・・

もちろんスクリプトを使用しない通常のメール送信のReturn-Pathは全く問題なくFromのアドレスが適用されます。

CGIのスクリプトの中をのぞいてsendmailの送信部分にオプション -f でReturn-Pathアドレスを指定すれば問題なかったのですが、他にも色々メール送信部分があるのですべて直すのは難しく根本的なところを直したいのですが、どこにReturn-Path のデフォルト設定(指定しない場合の設定)はあるのでしょうか?・・・こんな設定をした記憶はないのですが・・・せめてプライベートアドレス以外にしたいのですが・・・・

サーバのメールソフトは送信サーバにPostfix SMTP-AUTH、 受信サーバにcourier-imapを使用していますが、CGI でのメール送信はPostfix互換?のsendmailで行っています。


以上よろしくお願いします。

A 回答 (1件)

>そのスクリプトとは全く関係ない普通のユーザーのメールアドレスが設定されてしまいます



ユーザAがスクリプトを実行しているのにユーザBのアドレスが設定されると言うことですか?そんなはずはないのですが。cgiで実行と言うことは、実行ユーザはapacheですか?

sendmailコマンドで送信しているなら、-f を付けない限り、「実行ユーザ@ホスト名」がEnvelope-Fromになり、受信時にReturn-Pathにセットされます。実行ユーザ以外にしたければ、-f を付ける必要があります。ということで、apacheユーザで実行しているなら、「apache@ホスト名」になるはず。


Envelope-Fromを固定にするのは、postfixの設定で簡単にやる方法はないと思います。無理にやるとすると、sender_canonical_mapあたりを使うんでしょうね。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
なぞはすべて解けました!
メール関係(postfixなど)ばかり調べていてさっぱりわからなかったのですが・・・apacheの実行ユーザが原因でしたか・・・そういえばとある事情で変更していました・・・納得しました。
apacheの実行ユーザはapacheに変更したくないのでsender_canonical_mapで対応したしました。
ありがとうございます。勉強になりました。
(*- -)(*_ _)ペコリ

お礼日時:2009/10/19 12:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!