Setup Ubuntu Server


SMTPサーバ(送信) の変更点


[途中]

送信を可能にするためには考えないとならないことがたくさんある。もっとも簡単な送信は相手のメールサーバに接続してそのまま送信する方法だが、そとの世界の25番ポートへの接続がプロバイダによりブロックされる場合がある。その場合はプロバイダの提供するSMTPサーバにお願いすることになる。しかしこの場合もいろいろな制限がかけられている場合がある。例えばsenderのメールアドレスがプロバイダのメールアドレスでないと送れない場合がある。しかし認証を通せば送れたりする場合もある。

ここでは、以下のようなシナリオでpostfixを設定する。まずsaslを使って認証を有効にする。つぎに送信する場合は直接接続する。直接続できない場合はプロバイダのSMTPにお願いしなければならないがここではそれは考えないでおく。というのはプロバイダの認証情報をサーバにおいて置きたくないからだ。
またメール送信の際はポート25の代わりに587(submittion)を使うことも多い。この場合メーラーが

ここでは、以下のようなシナリオでpostfixを設定する。まずSASLを使って認証を有効にする。つぎに送信する場合は直接接続する。直接続できない場合はプロバイダのSMTPにお願いしなければならないがここではそれは考えないでおく。というのはプロバイダの認証情報をサーバにおいて置きたくないからだ。

*SASLとは [#ze1b43a5]
SMTPプロトコルにはそれ自体に認証機能を持っていないが、RFC2554の拡張によってSASLを使った認証ができる。MUA(メーラー)がMTA(メールサーバ)にアクセスした際、MTAは利用可能な認証方法を提供し、MUAはその中から自分が使える認証方式をつかってユーザ名とパスワードを送信する。ユーザ名とパスワードを受け取ったMTAはそれをUNIXパスワードや他の方法を使って認証の確認をする。

よって、SASLの設定の際はどのような認証方式(Authentication Mechanism)を使うのかの設定と、それをどこを見て確認するか(Authentication Framework)を設定しなければならない。

**saslauthd [#r2138d4f]
postfixはpostfix用のユーザ名で動いているのでこの権限ではUNIXパスワードの確認ができない。そこでSASLではrootでsaslauthdを動かして、認証確認を依頼する。

**/etc/sasldb2 [#o14606df]
UNIXパスワードを使わない場合は自分でアカウントファイルを作らなければならない。saslpasswd2コマンドがこれを行う。

*アドレスクラス [#r940aa03]
local, virtual alias, virtual mailbox, relay

*local [#l62a16f9]
ドメイン名がmydestinationのもの。aliasと.forwardも調べる。

*virtual alias [#mcfd6d8a]
ドメイン名がvirtual_alias_domainsのもの。他のアドレスに転送される。virtual_alias_mapsにユーザとアドレスが記述されており、そこに転送される。

*virtual mailbox [#oa4c38ef]
ドメイン名がvirtual_mailbox_domainsのもの。virtual_mailbox_mapsにユーザとメールボックスが記述されており、そのメールボックスに入れられる。

*relay [#ve48b953]
ドメイン名がrelay_domains parameterのもの。他のsmtpにリレーされる。

*それ以外のもの [#we8a4617]
認証されていれば受け入れられリレーされる。