CyrusIMAPdとの連携運用

前提条件

設定目標

/etc/make.conf

以下の内容を追記する。

# for sendmail
mail_sendmail_SET=    LA NIS SEM TLS DANE SASL SHMEM MILTER SMTPUTF8
mail_sendmail_SET+=   SOCKETMAP BLACKLISTD CYRUSLOOKUP PICKY_HELO_CHECK
mail_sendmail_UNSET=  BDB LDAP SASLAUTHD

/usr/local/etc/ports.conf

以下の内容を追記する。

mail/sendmail: CFLAGS=-O2 -pipe -DTLS_EC=2 -D_FFR_TLS_USE_CERTIFICATE_CHAIN_FILE -D_FFR_TLS_ALTNAMES -D_FFR_QUEUE_GROUP_SORTORDER

インストール

cd /usr/ports/mail/sendmail && make install

/usr/local/lib/sasl2/Sendmail.conf

以下の内容のファイルを作成する。

pwcheck_method: auxprop
auxprop_plugin: sasldb

※SendmailのSASLサポートコードにはSASLの設定に関するコードが含まれておらず、 SASLライブラリがケアしてる設定ファイルにて設定を行う必要がある。

適用可能なオプションとしては下記の物があるが、CyruIMAPd側の設定との調整を考えるとデフォルトのままで良いかと。

特に sasldb_mapsizesasldb_maxreaders の設定はユーザー数が多くなってきたときに調整が必要となる。

※IMAPサーバー側で同時アクセス数のリークを確認。再起動で改善する。

SASLクライアントが参照すべき設定ファイル名は sasl_server_init() 関数に引き渡される appname 引数により決定される。 マニュアルに明記されてないケースで調査が必要な際は参考までに。

https://www.cyrusimap.org/sasl/sasl/reference/manpages/library/sasl_server_init.html

参考文献