スペースを含むメールアドレスの送信が失敗する

Read More

ローカル部にスペースを含むメールアドレスがあった場合、SMTPを利用したプログラムでのメール送信に失敗することがあった。


ローカル部にスペースとはつまり、
ab cd efg@example.com

のようなもの。


メールアドレスのフォーマットを規定する文書として、RFC5321とRFC5322があり、メールアドレスに使用できる文字が定義されている。
これによるとローカル部にスペースを含むものでもOKということになる。


今回の、スペースを含むメールアドレスはどこのアドレスだったかというとGmailだった。
過去Gmailではスペースを含むメールアドレスが登録できていた時代があったということだろう。

※20110929現在ではスペースを含むものは登録することができない。



さて、SMTPのコマンドの中にRCPTコマンドというものがある。
送り先を指定するコマンドだ。


メールアドレスにスペースが含まれていた場合、この部分でエラーとなってコケていた。
で、対処法として行ったのはローカル部をダブルクォートで囲う、というもの。


つまり先述したようなメールアドレスの場合は以下のようになる。
× ab cd efg@example.com
○ "ab cd efg"@example.com



とりあえずコレで期待する動作をするようになった。