まとめ
最新のIndyやSynapseといったフリーのコンポーネントやライブラリで、SMTP認証やSMTP over SSL/TLSの実現が容易に行えることが分かりました。これらの機能はモバイル環境や無線LANからのメール送信などに必須の機能であり、こうした用途に用いられるアプリケーションの構築に便利なツールだと思います。
一方、インターネットメールで日本語文字コードを使うためにはコンポーネントやライブラリ任せではなく、実際にどのような処理が行われているのか、細心の注意を払わなければならないことも分かりました。現在、国内で使われている多くのメーラーは文字化けを防ぐ手立てを有しており、日本語8bit文字処理や、誤った文字コード変換を行ったヘッダでも文字化けせずにデコードすることが可能です。
従って、MIMEのEncodeを行わずとも、あるいは本文を7bitのISO-2022-JPに変換しなくても、送信したメールが文字化けして読めないことはないのかもしれません。しかし、LAN内限定ならば問題は無くとも、インターネットで使う以上、ルールを守りRFCに準拠すべきでしょう。つまり、インターネットの通信機能に利用されるコンポーネントやライブラリには、容易、かつルール違反でない、RFC準拠を実現できる環境の提供が望まれます。その意味で、Indy 10は日本語文字コード変換処理を別に行う必要があるという点では不完全なコンポーネントと言えるかも知れませんが、Synapseのように自動的にすべてQ encodeを行うことが正解であるとも言い切れないのも事実です。
繰り返しになりますが、インターネットメールで日本語文字コードを使うためにはコンポーネントやライブラリ任せではなく、実際にどのような処理が行われているのか細心の注意を払い、可能な限りトラブルの種をとり除くことが必要です。
本稿で実験検証した内容がメール送信機能の実装に際して、より安定した動作や環境に適した機能を引き出すことの一助になれば幸いです。
