メール設定 · 1 min read · Dec 25, 2025

SendMailをスマートホストとして設定し、Fromアドレスを書き換える

SendMailをスマートホストとして設定し、Fromアドレスを書き換える

このチュートリアルでは、sendmailサーバーを構成して、localhostから生成されたすべてのメールを別のSMTPサーバーに転送し、リモートの受信者にメールを送信する方法を説明します。また、[email protected]のFromアドレスを[email protected]に書き換える方法も説明します。

例のシナリオ: 外部にメールを中継するように構成されていないプロダクションサーバーがありますが、そのサーバーで実行されているアプリケーションが、サービスの状態や障害が発生した場合に、指定されたメールアドレスにログをメールで送信します。sendmailはlocalhost.localdomain名でローカルに実行されているため、[email protected]のメールをリモートSMTPサーバーに転送しようとしますが、localhost.localdomainが無効なIPに解決されるため、拒否されます。したがって、それを克服するために、[email protected]のFromアドレスを[email protected]に書き換える必要があります。これにより、他のSMTPサーバーは[email protected]から[email protected]またはサービスの状態メールを送信したい任意のアドレスにメールを中継します。

注意: このチュートリアルの特定の部分はRedhatベースのシステムにのみ適用されますが、一般的にはすべてのsendmailサーバーに手順が適用されます。

SMARTHOST IP : 10.1.1.50
SMTP HOST IP : 10.1.1.10

インストールされたRPMSの確認:

まず、Sendmailのrpmがインストールされている必要があります。デフォルトでは、Sendmailはシステムインストール時にインストールされます。

インストールされたsendmailのrpmを確認します:

root@nerdplanet# rpm -q sendmail sendmail-cf

これら2つのパッケージは、インストールされていることが表示される必要があります:

sendmail-8.xx
sendmail-cf-8.xx

まだインストールされていない場合は、インストールしてください。

Rpmsのインストール

root@nerdplanet# yum install sendmail sendmail-cf

これにより、Linuxシステムにインストールされます。

インストールが完了したら、サーバーが起動し、再起動時に自動的に起動することを確認する必要があります。

root@nerdplanet# chkconfig sendmail on 
root@nerdplanet# service sendmail start

これでサーバーが稼働しています。

まず、リモートサーバーのIPアドレスとそのドメイン名を/etc/hostsに追加します。

vi /etc/hosts
10.1.1.10    smtp.example.com

SMTPサーバーにメールを中継するように構成されている場合は、ローカルDNSがドメイン名をSMTPサーバーのIPアドレスに解決できる場合は、上記の手順を実行する必要はありません。

メール転送のためのSendmail設定ファイルの編集

vi /etc/mail/sendmail.mc

スマートホストへのメール転送

dnl # define(`SMART_HOST',`smtp.example.net') 

上記のエントリを含む行を見つけて、SMTPサーバーのアドレスに置き換えます。

define(`SMART_HOST',`smtp.example.com')

その後、ファイルを保存します。

メールのFromアドレスを書き換えるためのgenericstableファイルの作成

vi /etc/mail/genericstable

Genericsテーブルファイルに次の行を入力します:

root    [email protected]
mohan   [email protected]

上記の行は、rootによって送信されたメールは、[email protected]ではなく[email protected]から送信されたように見えることを意味し、ユーザーmohanによって送信されたメールは、[email protected]ではなく[email protected]から送信されたように見えることを意味します。

その後、ファイルを保存します。

Sendmail設定ファイルでの機能の有効化

vi /etc/mail/sendmail.mc

機能を有効にするために次の行を追加します:

FEATURE(masquerade_envelope)dnl
FEATURE(`genericstable')dnl
GENERICS_DOMAIN(`localhost.localdomain')dnl

その後、次を実行します:

make -C /etc/mail

これにより、/etc/mailディレクトリ内のすべてのファイルがコンパイルされ、変更が更新されます。

その後、sendmailサービスを再起動します。

root@nerdplanet# service sendmail restart

これで、sendmailをスマートホストとして設定しました。

スマートホストからのメールを受け入れるようにSMTPサーバーを設定する:


注意: この手順は、リモートのライブSMTPサーバーがsendmailサーバーである場合にのみ適用されます。このシナリオではそれが真です。他のSMTPサーバーについては、ドキュメントを参照してください。

前提条件: ライブSMTPサーバーはすでにFEATURE(‘access_db’を使用しています。

ライブSMTPサーバーのアクセスファイルを編集して、スマートホストからのメールを受け入れるようにします。

vi /etc/mail/access
connect:10.1.1.50    RELAY
cd /etc/mail

アクセスデータベースファイルを再構築します。

/usr/sbin/makemap hash access < access

sendmailサービスを再起動します。

root@smtp# service sendmail restart

これで、リモートSMTPサーバーはスマートホストからのメールを受け入れます。

このチュートリアルが誰かの役に立つことを願っています。コメントを残してください。

元のリンク: このチュートリアルはhttp://www.nerdplanet.co.ukでも利用可能です。

乾杯!

モハン。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。