- 締切済み
sendmailでのctladdrの変更
linux(centos5)にてメールサーバとしてsendmailを利用しています。 プログラム(perl)からメールを送信した時のctladdrについて教えてください。 メールログ(受信時のメールのヘッダーも同じ)を見るとctladdr(メールのヘッダーの場合received)がメールサーバ名になりますが、これを送信者ドメインに変えることはできるのでしょうか。 プログラムから制御できるものなのか、sendmailの設定なのか、DNSのMXが優先されるのか(現状MXのホスト名になる) 送信メールアドレスがinfo@example.comの場合ctladdrもexample.comとしたい。 解決方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- uwi
- ベストアンサー率74% (55/74)
返答です。 > -fはfromをinfo@example.comに指定するように思えますが、-fでctladdrを指定できるのですか? sendmailの-fで指定するのはエンベロープのfromです。通常これがctladdrになります。 エンベロープのfromとメールヘッダのfromは本質的には無関係なのですがそこはご理解しているでしょうか? ただ、最近ではヘンな詐称するとメールが届かないことの方が多いですが…
- pakuti
- ベストアンサー率50% (317/631)
出来ないと言う答えを見つけたわけでは無いですが これは恐らくは望むような形式への変更不可能です。 該当の、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で設定されている場合基本制御不可能なんでしょうか。
- uwi
- ベストアンサー率74% (55/74)
Perlのソースがないので、想像ですが、 | sendmail -t で送信しているなら | sendmail -t -finfo@example.com にしてみるとかどうでしょうか?
補足
お返事ありがとうございます。 -fはfromをinfo@example.comに指定するように思えますが、-fでctladdrを指定できるのですか?
補足
同IPでのMXが複数あるためctladdrが違うものになってしまいます。 気にしなければいい程度なんでしょうか。 -fで試してみます。