プロが教えるわが家の防犯対策術!

linux(centos5)にてメールサーバとしてsendmailを利用しています。
プログラム(perl)からメールを送信した時のctladdrについて教えてください。

メールログ(受信時のメールのヘッダーも同じ)を見るとctladdr(メールのヘッダーの場合received)がメールサーバ名になりますが、これを送信者ドメインに変えることはできるのでしょうか。 プログラムから制御できるものなのか、sendmailの設定なのか、DNSのMXが優先されるのか(現状MXのホスト名になる)

送信メールアドレスがinfo@example.comの場合ctladdrもexample.comとしたい。

解決方法を教えてください。

A 回答 (3件)

返答です。


> -fはfromをinfo@example.comに指定するように思えますが、-fでctladdrを指定できるのですか?

sendmailの-fで指定するのはエンベロープのfromです。通常これがctladdrになります。
エンベロープのfromとメールヘッダのfromは本質的には無関係なのですがそこはご理解しているでしょうか?

ただ、最近ではヘンな詐称するとメールが届かないことの方が多いですが…

この回答への補足

同IPでのMXが複数あるためctladdrが違うものになってしまいます。
気にしなければいい程度なんでしょうか。
-fで試してみます。

補足日時:2009/06/18 13:49
    • good
    • 0

出来ないと言う答えを見つけたわけでは無いですが


これは恐らくは望むような形式への変更不可能です。

該当の、sendmailが動作しているマシンが次のリレーサーバに
”なんと名乗っているか”なので
普通であれば、HOSTNAME環境変数を名乗ります。
sendmail.cf内の、Djマクロで変更は可能ですが
それをfromのアドレス毎に変更する方法は無いかと。

どうしてもと言うのであれば、sendmailを複数起動し
それぞれで、Djを変更する必要があるでしょうが
perlからコマンドラインでsendmailを呼び出すのであれば
思うように行かないかもしれません。

sendmail -C/new/file/path user@domain.name
で、Djを変えた設定ファイルで試してみましたが
やはり望む通りにはならないようです。

この回答への補足

このsendmailのctladdrの名前はhostnameでしょうか。MXの名前なんでしょうか。 仮にsendmail.cfなんかで変えたとしても今度は違う方のctladdrが変わっちゃう?同IPに複数のMXホスト名がDNSで設定されている場合基本制御不可能なんでしょうか。

補足日時:2009/06/18 13:51
    • good
    • 0

Perlのソースがないので、想像ですが、


| sendmail -t
で送信しているなら
| sendmail -t -finfo@example.com
にしてみるとかどうでしょうか?

この回答への補足

お返事ありがとうございます。
-fはfromをinfo@example.comに指定するように思えますが、-fでctladdrを指定できるのですか?

補足日時:2009/06/12 14:21
    • good
    • 0

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