2.1使ったもの
OS=redhat linux7.3
sendmail-8.12.9
cyrus-sasl-1.5.24
sendmail
cyrus-mail
redhatではsendmail-cf、sendmial-devel、cyrus-sasl関連4つくらいのパッケージはすべてアンインストールした
2.2
/usr/local/srcにsendmail & cyrus-saslのtar.gzを置いた。
2.3.cyrus-saslのインストール
tar zxvf cyrus-sasl-1.5.24.tar.gz
cd cyrus-sasl-1.5.24
./configure --prefix=/usr --enable-login=yes --with-dbpath=/etc/mail/sasldb
(--prefix=/usrをつけないと/usr/localにインストールされ、シンボリックリンクをはるように警告されるのでこれをつけた。dbpathを設定したのは、sendmailのファイルたちと同じ場所においておくため←指定なしのデフォルトでは/etcだった。また、OutlookExpressでも使いたいのでlogin認証を有効にした←デフォルトでは無効になってるから)
make
make install
saslpasswd -u localhost.localdomain test
(↑ユーザーアカウントを作るコマンド。passwordを聞かれるのでpassとした)
cd /etc/mail/
chmod 600 sasldb
(↑これをやっておかないとcram-md5とdigest-md5
がehloで有効になっていないことが確認できるし、auth
plain
やloginまでも実質使えなかった(authentication failedになる)。
sasldblistusers
(↑作ったアカウントの確認コマンドで、以下が表示される。おや?loginが無いぞと思ったが、表示されないだけで有効になっていたことが認証テストで判明。)
user: test realm: localhost.localdomain mech: PLAIN
user: test realm: localhost.localdomain mech: CRAM-MD5
user: test realm: localhost.localdomain mech: DIGEST-MD5
2.4.sendmailのインストールと設定
cd /usr/local/src
tar zxvf sendmail.8.12.9.tar.gz
cd sendmail-8.12.9/sendmail
vi conf.h
→#if SASLの手前の空行に#define SASL 1を追加。
cd ..
cd devtools/Site
touch site.config.m4
vi site.config.m4
*********以下を書き込む。*************************
APPENDDEF(`confENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
APPENDDEF(`confLIBDIRS', `-L/usr/lib/sasl -L/usr/lib')
APPENDDEF(`confINCDIRS', `-I/usr/include')
**************************************************
注意:`と'は違うので気をつける
文字列を囲むときの最初は`=バッククォーテーション
最後は'=シングルクォーテーション
mkdir /usr/man/man1
mkdir /usr/man/man5
(↑エラーが出るときがあったのであらかじめ作っておいた。)
adduser smmsp ←このユーザーを作らないとinstall時にエラーがでる。
sh Build
sh Build install
2.5.cfの設定
cd cf/cf
cp generic-linux.mc sendmail.mc
vi sendmail.mc
*************以下のように書き換える。注意:`と'は違うので気をつける*******
divert(-1)
.
.
.
.
divert(0)dnl
VERSIONID(`$Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp $')
OSTYPE(linux)dnl
DOMAIN(generic)dnl
TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl
define(`confAUTH_MECHANISMS',`LOGIN PLAIN CRAM-MD5
DIGEST-MD5')dnl
MAILER(local)dnl
MAILER(smtp)dnl
***************************************************
注意:`と'は違うので気をつける
文字列を囲むときの最初は`=バッククォーテーション
最後は'=シングルクォーテーション
上記ファイルはspam対策などで後で設定しなおした。(保存場所は/usr/local/src/sendmail.mc.bkとしてある)
sh Build sendmail.cf
sh Build install-cf
cd /etc/mail
touch local-host-names
(local-host-namesを編集)
mkdir /var/spool/mqueue
(無ければ作る)
2.6認証の確認
sendmail -bd -q15m
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.12.9/8.12.9;
Tue, 17 Jun 2003 19:31:27 +0900
ehlo localhost
250-localhost.localdomain Hello mail [127.0.0.1], pleased
to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250-DELIVERBY
250 HELP
ちなみにユーザー名とパスワードはencode済みの文字列で送信しな<
ければならないので、
以下のコマンドを用いてユーザー名を変換する
printf 'username¥0username¥0password' | mmencode
例:
printf 'test¥0test¥0pass' | mmencode
dGVzdAB0ZXN0AHBhc3M= (←結果)
ehlo localhost
250-localhost.localdomain Hello mail [127.0.0.1], pleased
to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250-DELIVERBY
250 HELP
AUTH PLAIN dGVzdAB0ZXN0AHBhc3M=
235 2.0.0 OK Authenticated
quit
成功したので、outlookexpressでやってみたらできた
ユーザー名:test (test%localhost.localdomainとするソフトもある様だ)
パスワード:pass