倉金家ホームページ趣味の部屋/サーバー構築メモ/メールサーバー
| ||||||
メール送信サーバー(SMTP)認証用に昔からつかわれているPop Before SMTP(PBS)も使えるようにします。
dracというプログラムもありこちらが一般的ですが、courier-IMAPとはそのままではうまくつながりません。courier-IMAPは意識的にdracの使用を拒否しているようなので、これを使うにはソースの改造が必要になりバージョンアップの度に面倒なことをしなくてはならないのでdracはやめておきます。 courier-IMAPの改造をしなくて済むpop-before-smtpというプログラムを使います。 | ||||||
インストールと設定http://popbsmtp.sourceforge.net より最新版ソースを頂く。
今回は pop-before-smtp-1-41.tar.gz rpm/SOURCES/に上記.tar.gzを置いて解凍 $tar zxvf pop-before-smtp-1.41.tar.gz 展開されたフォルダからpop-before-smtp.specファイルをrpm/SPECS/に移動 rpm/SPECS/フォルダに移動 ビルドする。 $rpmbuild -ba pop-before-smtp.spec ここでrpmインストールすればOKのはずだったが、perl moduleがうまく認識されず依存関係欠如でrpmインストールはできず。 perl(Date::Format), perl(Date::Parse), perl(Net::Netmask)などがないと言ってエラーになる。 perl(Date::...)はperl-TimeDateのrpmインストールで解決。 しかしperl(Net::Netmask)は対応しそうなperlのrpmがなく、perl -MCPAN で導入したにもかかわらずうまく認識されなかった。 しかたないので強引にインストール。 たぶんインストール時にperl moduleが認識されないだけだろうと。 #rpm -ivh --nodeps pop-before-smtp-1.41-1.noarch.rpm ためしに起動、停止してみる。 #service pop-before-smtp start Starting pop-before-smtp: done #service pop-before-smtp stop Stopping pop-before-smtp: done ....OKのようだ。 /etc/pop-before-smtp-conf.pl を編集 $logto = '/var/log/pop-before-smtp'; ...32行目。#を外す。ログファイルの指定。 $dbfile = '/etc/postfix/pop-before-smtp'; ...35行目。#を外す。 $grace = 10*60; ... 41行目。pbsの猶予時間の設定。ディフォルト30分を10分に。 $file_tail{'name'} = '/var/log/maillog'; ...44行目。#を外す。 使っているメールクライアントソフト(今回Courier-pop3 and Courier-IMAP)を探して$par = ... と $out_pat = ...の#を外す。(181-184行目) 以上でいちおうpop-before-smtpは動いたのですが、rpmで--nodepsを使って強引にインストールしたため、synapticが起動のたびにパッケージが破損していると警告をだしてきます。 うっとうしいので、/etc/pop-before-smtp-conf.plをいったん退避。 rpmで入れたパッケージをアンインストール後、今度は手動で再度インストールしました。(contrib/README_QUICKSTART参照) #cd rpm/BUILD/pop-before-smtp-1.4.2 #cp pop-before-smtp.init /etc/rc.d/init.d/pop-before-smtp #cp pop-before-smtp /usr/sbin/ あと退避した/etc/pop-before-smtp-conf.plを戻します。 これでOK! | ||||||
起動設定と動作テスト設定後の起動を再確認。
#service pop-before-smtp start Starting pop-before-smtp: done でOK 起動設定 #chkconfig pop-before-smtp on #pop-before-smtp --config=/etc/pop-before-smtp-conf.pl --debug --nowrite --reprocess をやると現在あるメールログから結果を出力してくる。特にエラーメッセージはないのでOKらしい。 本当はこれはインストールの前に展開したディレクトリでpop-before-smtp-conf.plを書き換えてから #./pop-before-smtp --config=./pop-before-smtp-conf.pl --debug --nowrite --reprocess でやってテストするのが正しいらしい。 | ||||||
postfixの設定追加/etc/postfix/main.cfの一部を変更
smtpd_recipient_restrictions = permit_mynetworks, check_client_access hash:/etc/postfix/pop-before-smtp, permit_sasl_authenticated, check_recipient_access hash:/etc/postfix/access, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_unauth_destination, permit check_client_access hash:/etc/postfix/pop-before-smtpはpermit_sasl_authenticatedの前に入れます。 #service postfix reload で設定を反映 | ||||||
確認実際にメールアカウントの送信認証の設定を「送信前に受信サーバーにログオンする。」にしてメールの送受信をしてみます。
結果、OKでーす。 | ||||||