Exim
このドキュメントでは Exim (メール転送エージェント) を設定してリモートの SMTP サーバーを使用する方法を説明します。
目次
インストール
設定
/etc/mail/exim.conf
を編集して以下を追加・変更してください:
Main Configuration Settings で primary_hostname
をアンコメントしてあなたのコンピュータのホストネームを追加してください (/etc/hostname
ファイルを参照):
primary_hostname = myhostname # change to your hostname
Routers Configuration セクションの末尾に以下を追加してください:
passonto_isp: driver = manualroute domains = !+local_domains transport = remote_smtp route_list = * smtp.myisp.com # change to the desired smtp server
Transports Configuration に以下が記述 (アンコメント) されていることを確認してください:
remote_smtp: driver = smtp
マシンの名前を隠す
送信されるメールの中にマシンの名前が入らないようにするには、exim の書き換え機能を有効にする必要があります。
Rewriting セクションに以下のように記述してください:
*@machine.mydomain $1@mydomain
machine
はノートパソコンや PC のホストネームに、mydomain
はマシンや送信されるメールのドメイン名に置き換えてください。
スマートホストとして Gmail を使う
exim の設定ファイルの先頭で、TLS を有効化してください:
tls_advertise_hosts = +local_network : *.gmail.com
もしくは全てのホストで TLS を有効にするには:
tls_advertise_hosts = *
TLS に関する詳細は exim のドキュメント に書かれています。
dnslookup ルーターの前、あるいは dnslookup を置き換えて以下のルーターを追加してください:
gmail_route: driver = manualroute transport = gmail_relay route_list = * smtp.gmail.com
リレーを追加してください:
gmail_relay: driver = smtp port = 587 tls_verify_certificates = /etc/ssl/certs/ca-certificates.crt # this forces host verification. tls_verify_hosts = smtp.gmail.com hosts_require_auth = <; $host_address hosts_require_tls = <; $host_address
ホスト認証によって exim のログに以下のような出力がされる場合があります:
SSL verify error: certificate name mismatch: "/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com"
上記のエラーはメールの配達には関係ないため無視してかまいません。ログイン情報を追加 (myaccount@gmail.com と mypassword はあなたのアカウントの情報に置き換えてください):
gmail_login: driver = plaintext public_name = LOGIN hide client_send = : myaccount@gmail.com : mypassword
smtp.gmail.com の代わりとして $host_address
を hosts_require_auth
と hosts_require_tls
で使っているのは 530 5.5.1 Authentication Required エラーが起こらないようにするためです。smtp.gmail.com の DNS クエリで IP アドレスが変わった場合にエラーは発生します。$host_address
は gmail_route
ルーターによって解決された IP アドレスになります。
セキュリティを高めるために、アプリパスワードを使ってください。Google Apps アカウントでも使えます。
トラブルシューティング
451 Temporary local problem
SMTP をテストすると "451 Temporary Local Problem" と表示される場合、root として送信されています。デフォルトでは Exim は root で送信することを許可していません。