ケータイ向けサイトでmailtoを利用する際は改行コードに注意
Tweet
先日Webを巡回していて見かけたブログで、興味深い記事がありましたのでご紹介させていただきます。
一部のドコモ端末で、mailto内の改行コードを間違えると、メールが送信されないケースがあるようです。
→ BUKURO-JIN 届かない mailto ~DoCoMo 改行コードの罠~ [y-110.net]
対象となるのは、「ドコモのN, Pシリーズ」で、mailto内のbody部の改行コードをLFでURLエンコードしてしまうと、メールが送信されないとのことです。
送信されない例:
<a href="mailto:x@example.jp?subject=xxx&body=xxx%0Axxx%0A">
正しい例:
<a href="mailto:x@example.jp?subject=xxx&body=xxx%0D%0Axxx%0D%0A">
RFCではメールの改行は「CR+LF」となっていますので、「%0D%0A」(CR+LFのURLエンコードした状態)としてやることで、正しく送信されるようです。
手元のP905iで試してみたところ、「送信しました」というダイアログが表示され、メールの送信処理には成功するのですが、確かにいつまで待ってもメールは送られてきません。
特定端末のみの不具合になりますし、その場でエラーが出るわけではないので、これは気づきにくいですね。
なお、送信からきっちり6時間後に次のようなエラーメールが返ってきました。
利用者は、ようやくここでメールが送信できなかったことに気づく形になります。
From: iモードセンター
Subject: 送信メールエラー
相手先ホストの都合により送信できませんでした。
Receiver's host can't accept your mail
宛先: x@example.jp
件名: xxx
こちらリンク先のブログでは、原因はメーラーのバグではないかと書かれていますが、こちらの「bare LF」問題が関係しているように思えます。
→ アシアルブログ 携帯端末とbare LFとqmail [asial.co.jp]
ともかく、改行入りのmailtoを作成する際にはお気をつけください。
関連:
6月 24th, 2009 at 19:56:52
header(location:mailto~);関連での質問です。
PHPページを開くとすぐ携帯端末のメーラを開きたいのですが、
auのケータイだとURLが正しくありません、docomoだと無効なデータを受信しました(302)と表示されます。
PC版(IEとFirefox)とSoftbankの3GCの端末の場合、問題無いです。
docomoとauではlocationでmailtoは使えないのでしょうか?それとも違う方法があるのでしょうか?
phpの動作環境は、Shift_JISで作っています。
ご教授のほどよろしくお願いします。
6月 25th, 2009 at 0:09:39
アンハさん
コメントありがとうございます。
locationヘッダ+mailtoはやったことがないですね。
ネット上の記事やケータイ本なんかでもあまり見たことがないので、出来ない可能性が高そうですね。
私はこの件に関してはこれ以上の情報は持っていないのですが、Forumの方でも質問して貰えれば誰かが答えてくれるかもしれません。
10月 27th, 2010 at 14:37:11
ソフバンだと改行できねーよ