メール設定 · 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/hosts10.1.1.10 smtp.example.comSMTPサーバーにメールを中継するように構成されている場合は、ローカル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/genericstableGenericsテーブルファイルに次の行を入力します:
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/accessconnect:10.1.1.50 RELAYcd /etc/mailアクセスデータベースファイルを再構築します。
/usr/sbin/makemap hash access < accesssendmailサービスを再起動します。
root@smtp# service sendmail restartこれで、リモートSMTPサーバーはスマートホストからのメールを受け入れます。
このチュートリアルが誰かの役に立つことを願っています。コメントを残してください。
元のリンク: このチュートリアルはhttp://www.nerdplanet.co.ukでも利用可能です。
乾杯!
モハン。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。