フォームから自動送信されるメールのFromに表示名を設定したらうまくいかなかった

2018.01.18メール

2018年ですね。
先日、友達に「あけましておめでとう」という手話を教えてもらったのに、使う機会がなくて1回しか使ってません。次に使うのは1年後か......。

ところで、正月人形ってかわいいのが多いですね。あんなふうになりたいな。マトリョーシカですけど。

今回は、メールの話。
Webの制作していると、みんな一度はメールのことで悩まされているのではないかと思います。

お問い合わせフォームが動かなくてメールが届いていなかった。
っていうホラーな話から、
一部が文字化けして宇宙語っぽいメールが届いた。
っていうファンタジーな話まで、メールの不思議な話は山ほどあると思います。

ある案件のフォームでは、フォームから送信した人と管理者にメールが届くようになっていました。よくある形ですね。
そして、お客様からの要望により、フォームの「名前」欄に書かれた内容を管理者に届くメールのFromに書かれるようにしました。

私がメールフォームから送信した場合、管理者に届くメールのFromが
開発マトリョーシカ<matryoshka@jbnet.jp>
みたいになっているといいわけです。
対応する前はメールアドレスがそのまま書かれていたので、
matryoshka@jbnet.jp
みたいになっていました。

しかし、お客様から、「ときどきFromの内容がおかしくなる」という相談がありました。
原因を調べたところ、「名前」欄にダブルクォーテーション「"」やカンマ「,」などが入るとおかしくなるようです。

つまり、こうなるわけですね。
matryoshka"developer"<matryoshka@jbnet.jp>
matryoshka,developer<matryoshka@jbnet.jp>

......これはダメだろうな(;・∀・)

なんとか解決しようとして、表示名をエスケープする方法とか調べたのですが、調べれば調べるほど
「表示名に特殊記号なんか使うからいけないんだよ」
という意見にたどり着く。
......まぁ、そうなんですけど、そこをなんとか。

結局、いい方法が見つからなくて、表示名を書くのを諦めました。
お客様に事情を話したら理解してもらえました。よかった......。

みなさんはこういうとき、どうしているのでしょうか。

もし、いい方法があれば、そっとお問い合わせから教えてください。
「お問い合わせ・ご相談内容」に「開発マトリョーシカへ」って書いてもらえれば、私に届きます。
いい内容は、このブログで紹介させていただきたいな、と、思います。

執筆者

マトリョーシカの中の人

マトリョーシカの中の人

「難しそうなことはきっとマトリョーシカがなんとかしてくれるはず。」 そんな都市伝説を形にするため地上に降り立ったクリーチャー。 年齢も性別もみんな不明。一体お前は何なんだ。 手も足も出ないし、首も回らない。 それなのに、いつもどうやって設計しているんだろう。 どうやってプログラム書いているんだろう。 そっちのほうが都市伝説。