ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

騒ぐ前に改めて作業内容を確認する

先日、本番環境に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 ファイルの情報が使われず、エラーが発生しなかったようです。

@が全角になっている理由を探していくと、システム用のメールアカウントの作成申請書の@が全角になっていて、それを気がつかずコピーしていました。

@が全角になっている理由もわかり、すっきりして、@を全角から半角に直して、設定作業をやり直したところ、メールは送信できるようになりました。


原因がしょぼいですが、正常に動作しない、わからない、と騒ぐ前に解決できてよかったです。