久々に現在使っている多目的用途のサーバー(このサイトが動いているサーバーでもあるんだよ)を使って私用でメールを送信したのだが、なぜかIMAP4での認証(ログイン)は通るのに、SMTP認証時のユーザーID/パスワードが違うというエラーが吐かれてしまうという意味不明な状態となっていた。そこで、考えられることをいろいろやってみて、なんとかメールの送信が正常に行われるようになったのを確認してた。
現状使っているサーバーの状態
- OSはDebian 8 Jessieを使用している(Debian 7 wheezyからのパッケージアップグレード)
- SMTPサーバーとしてPostfixを使用している
- IMAP4サーバーとしてDovecotを使用している
- SMTP認証を必要としている(SMTP-AUTH)
- 使用するログインID/パスワードはLinuxのログイン情報と同様
行ったこと
パッケージのアップグレード
まずは「apt-get upgrade」あるいは「aptitude upgrade」でパッケージをアップグレードを行った。いろいろSMTP関連のアップグレードは確認できず、ログインできない状況も変わらず。
SMTP-Authの設定を確認
/etc/postfix/sasl/smtpd.confをlessで確認し、「pwcheck_method: saslauthd」になっているのを確認。
saslauthdを再起動
「sudo /etc/init.d/saslauthd restart」でsaslauthdを再起動する。すると今度は正常に送信できるようになった。
とりあえず、自動的に起動するように「sudo chkconfig saslauthd on」を入れた。現時点ではサーバーの再起動を行っていないのでこれで解決したかどうかは不明。
考えられる原因
現時点では解明できていないが、おそらくSMTP-Authのデーモンが止まっていたのが要因になっているのではないかと考えられる。というのは、saslauthdを再起動することで送信ができるようになったことを確認したからである。
ただし、これが正しいかどうかは現時点ではわからない。
ひとまずは、一旦サーバーを再起動して、もう一度送信できるかどうかを再度確認したい。
21:51追記
先ほど再検証を行って、正常にメールを送信できるようになったことを確認した。ひとまず問題は解決されたとはいえ、原因の分からない不具合を直すのは面倒な作業である。こういうのが嫌なパターンなのだなとしみじみ感じさせられる。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。