弊社が開発したモバイル向けサービスの登録者の方で、emailアドレスの中にダブルクォーテーションが含まれているユーザーがいるのを発見した。
これは、一部のMTAまたはMUAの仕様のようで、以下のいづれかに該当するメールアドレスは、@以前の部分がダブルクォーテーションで囲まれるらしい。
- @以前の部分に連続したドットがある
- @直前にドットがある
というわけで、ちょっとはまった。
弊社が開発したモバイル向けサービスの登録者の方で、emailアドレスの中にダブルクォーテーションが含まれているユーザーがいるのを発見した。
これは、一部のMTAまたはMUAの仕様のようで、以下のいづれかに該当するメールアドレスは、@以前の部分がダブルクォーテーションで囲まれるらしい。
というわけで、ちょっとはまった。
携帯サイトでmailtoクリック時に本文や件名も自動的に挿入したい場合、以下のようなリンクを使用する。
<a href="mailto:?subject=SUBJECT&body=BODY"></a>
ただし、SUBJECTとBODYの部分に日本語を使用する場合は、キャリア毎に文字コードに関する仕様が違うようなのでメモ。
phpの内部エンコーディングはUTF-8、出力エンコーディングもUTF-8。
UTF-8のままurlencode()をしようすればOK
return urlencode( mb_convert_encoding($str, 'SJIS', 'UTF-8') );
のようにSJISに変換してからURLエンコードする。