sendmailで送信元ドメイン名をlocalhost.localdomainから変更する

sendmailでメールを送信するとデフォルトの送信元ドメインは"localhost.localdomain"です。
この状態で、自宅のサーバからテストメールを自分のgmail宛に度々送信していたら、某所のIP block listに登録されてしまいました。orz
「localhost.localdomainというドメイン名がスパムっぽくて怪しい」というのが理由らしいです。

というわけで、慌ててsendmailの設定を変更しました。

送信元ドメイン名を変更するにはsendmail.mcの以下の項目をコメントアウトします。(行頭のdnlを消します。)

MASQUERADE_AS(`example.domain.com')dnl
FEATURE(masquerade_envelope)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl

 

MASQUERADE_ASには自分の好きなドメイン名を設定します。MASQUERADE_DOMAINは変換元のドメイン名になります。上記の例だと、localhost、localhost.localdomainのいずれかにマッチしたドメインはMASQUERADE_ASで指定したドメイン名に書き換えられます。
sendmail.mcの編集が終わったら以下のようにしてsendmail.cfを作成します。

m4 sendmail.mc > sendmail.cf

すると以下のようなエラーが出ました。
cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory

調べてみたら、sendmail.cfを作成するには"sendmail-cf package"が必要らしいです。(sendmail.mcファイルの最初のほうにも"you will need to regenerate the /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is installed"と書いてありました。)
なので"sendmail-cf package"をインストールします。
yum install sendmail-cf
これで再度m4 sendmail.mc > sendmail.cfを実行したら上手くいきました。 最後にsendmailをリスタートして、メールを送ってみます。Fromヘッダのドメイン名が設定したとおりになっていれば成功です。 ※sendmailコマンドでFromヘッダを指定した場合、sendmail.mcで指定したドメイン名ではなく、コマンドで指定した送信元ドメイン名でメールが届きます。 以上で設定は完了。あとはIP blockの解除依頼を出すだけです! 以上。 参考にしたURL http://d.hatena.ne.jp/rx7/20081121/p3
http://moyolab.blog57.fc2.com/blog-entry-54.html

2014/09/17 追記
上記の設定変更だけだと、見かけ上のヘッダは変更されていたが、メッセージのソースを見るとバッチリ"localhost.localdomain"と書いてあった。。。。
再度、調べてみて以下のようにしたら解決した。

sendmai.mcに以下の行を追加。

define(`confDOMAIN_NAME', `example.domain.com')dnl
※example.domain.comは自ホストのFQDNに読み替えてください。

/etc/hostsにも自ホストのFQDNを記述する。
127.0.0.1 localhost localhost.localdomain example.domain.com

sendmail.mcからsendmail.cfを作成。
m4 sendmail.mc > sendmail.cf

最後にsendmailサービスをリスタートしてメールを送信したら、メッセージソースの送信元ドメイン名までバッチリ変更されていました。

以上。

参考にしたURL
http://blueeyesblue.cocolog-nifty.com/technote/2008/11/sendmaillocalho.html

Leave a Reply

Your email address will not be published. Required fields are marked *