sendmailで送信元のドメイン名(デフォルトはlocalhost.localdomain)を変更する

by ViaMoi


訳あって、約8年ぶりにsendmailの設定をした。久しぶりすぎて設定わかんねー。前にやったときは大学生の頃だし。
久しぶりにsendmail.mcなんぞ触ったけど、どうもこのコメントアウトを意味する"dnl"に違和感を感じまくる。

さて、本題。
デフォルトの設定のままsendmailを使ってメール送信を行うと、送信元であるFromヘッダが「username@localhost.localdomain」となってしまう。このままではSPAMと判断されかねない、かつそもそも送信者が分からないということで、設定を行った。


方法は、以下のエントリを参考にさせてもらった。

設定

とりあえず、"/etc/mail/sendmail.mc"を編集する。

# diff sendmail.mc sendmail.mc.20081121

以下に、変更前(デフォルト)と変更後のdiffを貼り付けておく。

160c160
< MASQUERADE_AS(`xxxxx.net')dnl
---
> dnl MASQUERADE_AS(`mydomain.com')dnl
164c164
< FEATURE(masquerade_envelope)dnl
---
> dnl FEATURE(masquerade_envelope)dnl
170,171c170,171
< MASQUERADE_DOMAIN(localhost)dnl
< MASQUERADE_DOMAIN(localhost.localdomain)dnl
---
> dnl MASQUERADE_DOMAIN(localhost)dnl
> dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl

ちなみに、↑の設定のうち"xxxxx.net"の部分が、変更後の正しいドメイン名となります。
次にsendmail.mcの編集後、sendmail.cfを作成する。

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

と実行したところ、、、

/etc/mail/sendmail.mc:10: m4: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory

とエラーが出たので、、、

# yum install sendmail-cf

と、"sendmail-cf"パッケージをインストールした後に、再度上記の"m4"コマンド実行したところ、今度は上手く実行できた。

# /etc/init.d/sendmail restart

最後に、↑のような感じでsendmailを再起動してやればOK。

これで、このサーバからsendmail経由でメール送信をした場合、今回の例だと"username@xxxx.net"のFromヘッダでメールが配信されるようになる。

参考


sendmailクックブック―設定と運用のためのレシピ集

sendmailクックブック―設定と運用のためのレシピ集