sendmail と popa3d を設定する

OpenBSD のデフォルトでは、 外部(localhost 以外)からのメールを受け取ることができない設定になっています。 また、POP3 によるアクセスもできません。 そこで、以下のような設定にしてみました。

このメモは OpenBSD 3.2版に基づいていますが、 3.0版以降ならば適用できると思われます。

sendmail.cf の変更

デフォルトの /etc/mail/sendmail.cf の設定では、 /etc/mail/local-host-names を見るようになっていません。 複数のホスト宛のメールを代表して受け取れるようにするため、 これを見るように変更します。
※ OpenBSD 3.5 からはデフォルトで見るようになりました。 sendmail.cf の変更は不要です。

  1. cd /usr/share/sendmail/cf します。
  2. cp openbsd-proto.mc openbsd-new.mc を実行します。
  3. openbsd-new.mc を編集して以下の定義を追加します。
    他のFEATURE定義の下に挿入すればOKです。
    FEATURE(`use_cw_file')
    
  4. make openbsd-new.cf を実行します。
  5. 生成された openbsd-new.cf を /etc/mail/sendmail.cf にコピーします。

sendmail の設定

  1. /etc/mail/local-host-names に受け取り対象にするホスト名/ドメイン名を指定します。 メールの宛先ホスト名(アドレスのうち @ の右側部分)がここに含まれているなら、 そのメールを自サーバ宛として受け取り処理をします。 以下のように1行に1個ずつ指定します。
    hostname1.local
    ns.local
    
  2. /etc/rc.conf を編集して起動オプションを変更します。
    sendmail_flags の設定値を以下のように変更します。
    #sendmail_flags="-L sm-mta -C/etc/mail/localhost.cf -bd -q30m"
    sendmail_flags="-L sm-mta -bd -q30m"
    
  3. sendmail を立ち上げ直します。
    古い sendmail のプロセスを探して kill した後、以下のようにして起動します。
    # /usr/sbin/sendmail -L sm-mta -bd -q30m >& /dev/null
    

popa3d の設定

  1. /etc/inetd.conf を編集して POP3 を受け付けるように変更します。
    POP3 の行を有効にすればOKです。 以下のような設定になります。
    pop3    stream  tcp     nowait  root    /usr/sbin/popa3d    popa3d
    
  2. 変更を inetd に反映します。
    inetd のプロセスを探して kill -HUP します。