ダブルドットなメールアドレス

実際にはトリプルドットでしたが(笑)


初めて業務で遭遇した。データベースからはき出したデータをAccessに取り込む作業をしていたとき、なぜか一行だけエラーが出て解消できないことに気づいた。

Accessのエラーメッセージが今ひとつだったので理由を確定するまでに数時間かけてしまった*1が、結局理由は「連続するドットを含むメールアドレスが存在したから」だった。


ちなみによくあるという「メールアドレスとして認識されない」などという高尚なエラーではなく、単純な取り込みエラー。自作プログラムのバックエンドなので、「データ内にダブルクォーテーションなんて無いだろう」と高(たか)を括って「データ内のダブルクォーテーションにエスケープ処理をせずにダブルクォーテーションでデータを囲んだ」為。でもメールアドレスのデータを書き込んだ人がRFCの仕様通りに「quoted-string*2」を使ってメールアドレスを表記していました。おかげでCSVの処理が混乱していたらしい。つまり、完全に私のミス…反省。そもそも、よく考えると「本名付きの表記を使ったメールアドレス」とかでもダブルクォーテーションが出てくるではないか。短慮だった。

*1:あまりにやっつけなやり方をしていたので、データの書きだし方とかを少しきれいに書き直したりしていた。

*2:@の前の部分をダブルクォーテーションで囲む表記法