概要

送信専用のMTAはssmtpとかnullmailerがある。

正直これらのパッケージを使ったほうが早いが、諸事情でpostfixに慣れておかないといけない為、 postfixを送信専用にする。

やりたいこと

インストール

USE="sasl"を有効にし、postfixをインストール

$ emerge -v postfix
[ebuild    N   ] mail-mta/postfix-2.10.1  USE="berkdb pam sasl ssl -cdb -doc -dovecot-sasl -hardened -ldap -ldap-bind -mbox -memcached -mysql -nis -postgres (-selinux) -sqlite -vda" 0 kB

いろいろオプションあるけど、sslとsaslがあればgmailの認証は可能なはず。

MTAパッケージは互いにブロックしあうため、 既にssmtpとかnullmailerとか入っている場合は、Uninstallされる。

設定

/etc/postfix/master.cf

ネットワーク経由のメール配送受付は行わない為、下記をコメントアウトする。

#smtp      inet  n       -       n       -       -       smtpd

/etc/postfix/main.cf

myhostnameとかmydomainも適当にホスト名等に設定する。 env fromはgmailのアドレスになる。

設定必須のパラメータは下記。

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_tls_CApath = /etc/ssl/certs/ca-certificates.crt

上記の設定は、gmailのsmtps接続に必要。

おまけ

ローカル配送をすべて特定のアドレスに送付する、ということも可能。

alias_maps = regexp:/etc/postfix/aliases.reg

/etc/postfix/aliases.reg

/.+/ hoge@gmail.com

ただ、「送れなかった」という旨のメールの配送もそのアドレスに送信 を試みるため、配送ループが発生する恐れあり。

何かしらの工夫が必要。

/etc/postfix/saslpass

ファイル名は適宜変えて、設定ファイル等のパスを合わせれば良い。

例はメールアドレスがxxxxx@gmail.com、パスワードがhogehogeだった場合。

[smtp.gmail.com]:587 xxxxx@gmail.com:hogehoge

設定後は下記コマンドを実行し、hash化する。

$ postmap /etc/postfix/saslpass

パスワードが書かれている為、rootのみread/write可能にする。

$ chmod 600 /etc/postfix/saslpass{,.db}

サービス登録

$ rc-update add postfix default

起動

$ rc-service postfix start

なんだかんだでまだメールで通知確認することが多いため、 cron結果とかメールで投げとくと検索できて便利。

comments powered by Disqus
カテゴリ
タグ
月別アーカイブ