Exim

提供: ArchWiki
2019年4月1日 (月) 12:09時点におけるHiromi-mi (トーク | 投稿記録)による版 (→‎スマートホストとして Gmail を使う: 未訳部分翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

このドキュメントでは Exim (メール転送エージェント) を設定してリモートの SMTP サーバーを使用する方法を説明します。

インストール

exim パッケージをインストールしてください。

設定

/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 のドキュメント に書かれています。

ノート: 以下の記述は、begin authenticators の後ろなど、設定ファイルの正しい位置に記述する必要があります。

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_addresshosts_require_authhosts_require_tls で使っているのは 530 5.5.1 Authentication Required エラーが起こらないようにするためです。smtp.gmail.com の DNS クエリで IP アドレスが変わった場合にエラーは発生します。$host_addressgmail_route ルーターによって解決された IP アドレスになります。

セキュリティを高めるために、アプリパスワードを使ってください。Google Apps アカウントでも使えます。

トラブルシューティング

451 Temporary local problem

SMTP をテストすると "451 Temporary Local Problem" と表示される場合、root として送信されています。デフォルトでは Exim は root で送信することを許可していません。