ケータイ向けサイトでmailtoを利用する際は改行コードに注意
    このエントリをはてなブックマークに登録

先日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を作成する際にはお気をつけください。

 

関連:


 

最近の記事







3 Responses to “ケータイ向けサイトでmailtoを利用する際は改行コードに注意”

  1. header(location:mailto~);関連での質問です。
    PHPページを開くとすぐ携帯端末のメーラを開きたいのですが、
    auのケータイだとURLが正しくありません、docomoだと無効なデータを受信しました(302)と表示されます。

    PC版(IEとFirefox)とSoftbankの3GCの端末の場合、問題無いです。
    docomoとauではlocationでmailtoは使えないのでしょうか?それとも違う方法があるのでしょうか?

    phpの動作環境は、Shift_JISで作っています。

    ご教授のほどよろしくお願いします。

  2. アンハさん

    コメントありがとうございます。
    locationヘッダ+mailtoはやったことがないですね。
    ネット上の記事やケータイ本なんかでもあまり見たことがないので、出来ない可能性が高そうですね。

    私はこの件に関してはこれ以上の情報は持っていないのですが、Forumの方でも質問して貰えれば誰かが答えてくれるかもしれません。

  3. ソフバンだと改行できねーよ

コメントを書く