Linux

  (最終更新日:2017.06.28)

【sendmail】メールがリレーされないときの解決策

sendmailで、『“Smart” relay host』にリレーの設定を入れているのにも関わらず、なぜかリレーされないという謎事象にぶち当たりましたのでその解決策をメモ的に残しておきたいと思います。

状況

今回の環境の状況としては、まず hosts ファイルに転送先となるリレーサーバを記載します。

# vi /etc/hosts

192.168.100.1           mailhost

続いて sendmail.cf にリレーの設定を。

# vim /etc/mail/sendmail.cf

下記に修正
# "Smart" relay host (may be null)
DSmailhost$?m.$m$.

あとは sendmail を再起動すればメールがリレーされるようになる・・・ はずだったのですが、実際には転送されず。maillogを確認したところ、なぜか localhost での配送となってしまっていました。

Jun 28 10:37:07 pgdbsv sendmail[6546]: v5S1b7Ul006546: from=root, size=80, class=0, nrcpts=1, msgid=<
201706280137.v5S1b7Ul006546@pgdbsv.local>, relay=root@localhost
Jun 28 10:37:07 pgdbsv sendmail[6546]: v5S1b7Ul006546: to=[宛先メールアドレス], delay=00:00:00, mailer=e
smtp, pri=30080, dsn=4.4.3, stat=queued

つまるところ、転送先となるメールサーバーの名前解決がhostsに記載しているのにできていなくてそのままスルーされているか感じです。

結論:service.switchファイルを作成する

解決策としては、service.switch というファイルを作成して名前解決に hosts を優先するということを明記すればOKでした。

ただ他の環境ではこんなことなかったのでこの sendmail のバージョン( sendmail-8.13.8-8.1.el5_7 )のバグじゃないのかな‥とも思いつつ。

# vim /etc/mail/service.switch
hosts   files
(間はスペースじゃなくてタブが必須)

# /etc/rc.d/init.d/sendmail restart

これでリレーされない事象が解決することもあるかなと。
するといいですね。

スポンサーリンク
スポンサーリンク

関連記事

  1. Linux

    大容量HDDをparted (GNU Parted)でフォーマットして使えるようにする手順

    2TBを超えるハードディスクは、GPT ( GUID Partitio…

  2. Linux

    CentOS 6.7でデフォルトのカーネルを変更する方法

    CentOS 6.7で、yum updateによるカーネルのバ…

  3. Linux

    マルチスレッドを活かした並列処理でfioのパフォーマンステストを実施する方法

    fioコマンドを利用してパフォーマンステストを実施する際に、シングルス…

  4. Linux

    【Linux】増設したメモリを認識させる方法。3GB(3107204)の壁。

    VMwareで稼働している32bit Linux(CentOS 5)の…

  5. Linux

    yum updateでvault.centos.orgへの接続がTime outする時

    公式yumリポジトリが既に閉鎖されている CentOS 4 でyumを…

  6. Linux

    cURL:インストール時にlibSSH2でエラーになる場合の解決策

    cURLをソースインストールする際に --with-libssh2 を…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. PHP PhantomJSでFatal error: Unc…
  2. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  3. CentOS7のPHP5.6にPhpSpreadsheetを…
  4. Azure仮想マシン(CentOS 7)のStandardデ…
  5. 【CentOS 7】特定ユーザーのクォータ設定を削除(無制限…
PAGE TOP