sendmailからのメール送信ができない問題をhostnameを変更せずになんとかする。
状況
lettreクレートを使ってrustでメールを送信する方法については以前書いた:

しかし、環境によってはメールを送信するための準備が整い切れていない場面があるようなのでその1つを記録しておきたい。
lettreの手続きは問題ないのだが、この環境ではalmalinux9のsendmailを経由するのでそこで不備があるとエラーというか送信に失敗してしまう。そのときに確認できる失敗時のログは次のようなもの:
My unqualified host name (<hostname>) unknown; sleeping for retry
unable to qualify my own domain name (<hostname>) -- using short name
このログはjournalctlから確認した。
ホスト名からIPアドレスがわからない、つまりホスト名が解決できないような気がするメッセージ。
解決
解決できないなら解決できるようにすればいいじゃないということで解決のための設定をする。
/etc/hostsでホスト名をループバックアドレスとして解決するように記述する:
127.0.0.1 localhost <省略> <hostname>
127.0.0.1に先ほどの<hostname>を追記すればオーケー。
おわり
lettreのソースコードを見てみると、最初に接続するSMTPサーバはlocalhostなので、ローカルのSMTPサーバというかMTAのsendmailなどの設定が必要になるとわかる:
sendmail自体は知らないことも多いので少しずつ知識を蓄えたいなと思う。
以上です。


