騒ぐ前に改めて作業内容を確認する
先日、本番環境にsendmailを設定しました。
事前の導入テストの結果に従って設定を行ったので、設定作業はスムーズに終わりました。
ajya.hatenablog.jp
ajya.hatenablog.jp
設定作業が終わったので、メールの送信テストを行ったら、エラーが発生しています。
メールの送信は、
$ sendmail -v test@example.com
のように、-vをつけたので、詳細が表示されています。
内容を確認すると、会社のメールサーバーにリレーするために、会社のメールサーバーとの認証を行っている部分でエラーが発生しています。
導入テストを行った際には、エラーは発生しませんでした。
導入テストを行った環境も残してあったので、同様にメールの送信テストを行って、詳細表示を比較すると、認証の部分で動作が異なっています。
社内から会社のメールサーバーにリレーしているので、外部のサーバーとは、認証の処理が異なるように設定されているようです。
設定が間違っているわけではないはずなのに、なぜ認証エラーになるのかわかりません。
Photo by Gabriel Heinzer on Unsplash
システム用のメールアカウントではなく、個人のメールアカウントで試して、それでダメならメールサーバーの管理者に質問するしかない、と判断しました。
最初から順番に手順を確認して、設定ファイルを確認していくと、/etc/mail/authinfo/smtp-auth ファイルに、
AuthInfo:mx.example.com "U:system@example.com" "P:examplepass" "M:CRAM-MD5 LOGIN PLAIN"
のように、@が全角文字で登録されていることに気がつきました。
導入テストを行った環境からコピーしたので、コピーしたときか、コピーしてメモとして貼り付けた先で全角になったのか?と思いつつ、導入テストを行った環境を確認すると、こちらも全角になっていました。
社内から会社のメールサーバーにリレーしているため、認証の処理が異なって、/etc/mail/authinfo/smtp-auth ファイルの情報が使われず、エラーが発生しなかったようです。
@が全角になっている理由を探していくと、システム用のメールアカウントの作成申請書の@が全角になっていて、それを気がつかずコピーしていました。
@が全角になっている理由もわかり、すっきりして、@を全角から半角に直して、設定作業をやり直したところ、メールは送信できるようになりました。
原因がしょぼいですが、正常に動作しない、わからない、と騒ぐ前に解決できてよかったです。