サポート過去ログ1
2008/10/24
# 通りすがり 2008年05月07日(水) 午後8時06分
ヘッダ部分の改行コードが”¥r¥n”のため
WARNING: bad headers - Improper use of control character
というエラーがでました。
”¥n”にすれば問題ないようです。
# 通りすがり 2008年05月07日(水) 午後9時35分
Qdmailを利用してメール送信のテストを行っています。
Cakephp 1.1.19.6305にて$this->Qdmail->easyText();方式
で試した所、ファイル自体は添付されるのですが、添付された時のファイル名が付きません。
# spok 2008年05月07日(水) 深夜1時33分
通りすがりさん
スポックです。コメントありがとうございます。
添付ファイル名の不具合について、バージョンアップしましたので、利用してみてください。(0.8.0a)
最近のバージョンアップで別の部分をいじったときに、添付ファイルの処理がおかしくなっていました。
改行コードについて
調べてみると、改行コードを無理矢理LF->CRLFに修正するMTAがあるようです。想像ですが、おそらく通りすがりさんのお使いの環境がそうであるような気がします。(違うかもしれません。)
今度、時間があるときに、「使い方」のほうで、改行コードを変更して使う使い方をアップしておきたいと思います。
別件ですが、mail関数に渡す本文はLFであることが要求されていることに、今般気が付きましたので、その修正もいれてあります(これは、通りすがりさんの不具合とは関係ないと思います。)
ありがとうございました。
# spok 2008年05月07日(水) 深夜1時38分
ちなみにですが、インターネットを流れるメールのヘッダーの改行コードは、RFC28222で CRLF と定められており、ほとんどのメーラーはこれに従っているかと思います。
しかし、一般的なunix,linuxのテキストの改行コードは、LFのみのため、これに合わせて、MTAがある意味親切に、別の意味では場当たり的に、改行コードを無理矢理 LF → CRLF に変更するMTAがあるようです。
これにより、 CRLF -> CRCRLR となり、変なヘッダー改行コードと認識されてしまうこともあるようです。
# 通りすがり 2008年05月08日(木) 午後1時41分
対応ありがとうございます。
添付ファイル名も正常につきました。
MTAまわりの仕様についてはこちらでも調査し
分かり次第またこちらにてフィードバックさせてもらいます。
詳細な情報と対応ありがとうございました。
# Ron 2008年05月10日(土) 午前11時03分
Qdmailを利用してメール送信のテストをしていました。
なぜがメールが2通送信されてしまうのですが、でもこんなこと言っているのは私だけですので再度、チェックしてみます。
# spok 2008年05月12日(月) 午後0時17分
Ronさん
スポックです。ご利用ありがとうございます。
差し支えない範囲で、環境とコードをお教えいただければ、何かわかるかもしれません。
# Qdmail愛用者 2008年05月14日(水) 午後2時07分
Qdmail、利用させてもらってます。
メールを送信すると、題名が18、19文字目あたりから文字化けをしてしまうのですが、こちらの環境の問題でしょうか?
(その他は問題ありません)
文字コード、エンコード指定ともに、デフォルト状態です。
何か解決策などありましたら、お教えいただければと思います。
よろしくお願いします。
# spok 2008年05月14日(水) 午後7時46分
Qdmail愛用者さん。
ご利用ありがとうございます。
Qdmailは、どんな環境でも文字化けしないことを目指しています。ご迷惑をおかけして申し訳ありません。
当該メールを spo kd eco test 以下、@ヤフーのアドレスに送りつけてみて下さい。上記のIDの空白は抜いてください。(@yahoo.co.jp)
また、別のメールで、以下の情報をお教え願えれば幸いです。
■Qdmailバージョン
■OS名&バージョン
■PHPソースコードの文字コード、改行コード
■できれば、Qdmailを利用している部分のソースコード
■文字化け前の題名
■echo mb_detect_order();の結果。
上記の情報は今後のために個人情報等を抜いた差し支えない範囲で公開することがあります。
たぶん、mimeエンコードの問題か、元の文字コードを誤って判定している可能性があるかもしれません。
半角スペースや全角&半角文字混じりの場合などが、やばいかもしれません。
# spok 2008年05月14日(水) 午後7時57分
追加です。
■echo mb_internal_encoding();
の結果も、できればお願いいたします。
# spok 2008年05月15日(木) 深夜0時08分
Qdmail愛用者さん。
重要な不具合の報告ありがとうございました。
MIMEに厳密なメーラだと文字化けする現象をこちらでも確認しました。
修正版をアップしてみましたので、お試し下さい。
# spok 2008年05月23日(金) 午後7時26分
Qdmail愛用者さんからメールをいただき、無事文字化けが直ったとの連絡がありました。よかったです。
原因は、mimeエンコードした際に、マルチバイトの区切りではないところで、改行が入ったのが原因でした。親切なメーラーでは、問題なく表示させるのですが、rfcに愚直に従っている、becky,gmailでは、場合によっては件名が文字化けしていました。
バージョン0.8.1aで、修正済みです。
マルチバイトで区切りのよい場所で区切ってから、baseエンコード(mimeエンコード)するようにしました。
# Kuma 2008年05月25日(日) 午後10時34分
機種依存文字を利用したくテストしています。
iso-2022-jpですと機種依存文字が?になってしまい。
utf-8 base64に変更してテストしてみました。
所が、utf-8 base64を指定した際に Qdmail0.75以上だと
easyTextで送信したメールがHTMLメールになります。
こちらは、意図的なものでしょうか。
お忙しいとは思いますが、ご確認よろしくお願い致します。
# spok 2008年05月27日(火) 午後8時24分
Kumaさん
重要な不具合のご報告ありがとうございます。
こちらでも再現しました。
修正版をアップロードしましたので、よかったら試してみて下さい。
0.8.2aです。
# nnnnnn 2008年06月13日(金) 午後4時07分
DoCoMo SH903iにデコメを送ってみましたが、
[添付ファイル削除]になりました。
画像を取り除いて、HTMLメールで送っても、
まったく同じ結果になりました。
# kei 2008年06月14日(土) 午後5時05分
Qdmailをお問い合わせフォームに利用させていただいています。
以下のようなタイトルで、かつある一定の長さ以上になると、Yahoo!メールの受信箱(一覧表示)にて表示が崩れます。
【お問い合わせ】080614-001:テストテストテスト 様
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
【お問い合わせ】080614-001:テストテストテスト =?iso-20
メールを開くと問題なく表示されますし、Gmailでも問題はありませんでした。
Yahoo!の中の問題のような気もしますが、Qdmail以外で送信したものには問題が起こりませんでした。
■Qdmail ver 0.8.4a
■WindowsXP Professional(ver2002) SP3
■PHPソースコードの文字コード、改行コード:UTF-8N、LF
# spok 2008年06月15日(日) 午後10時12分
nnnnnnさん
お手数をおかけします~。下記の情報をお教え下さい。
■Qdmailバージョン
■OS名&バージョン
■PHPソースコードの文字コード、改行コード
■できれば、Qdmailを利用している部分のソースコード
■添付ファイルの容量
■他のソフトから同じメールを送信できるかどうか
一番怪しいのは、添付ファイルの容量ですが、10KBを超えていませんか?docomoの制限で10KB以上は受け取れません。
keiさん
せっかく使っていただいているのに、すいませんね~。
yahooメールはテストしていませんでした。。。
現象は再現できましたが、原因究明中です。今しばらくお待ち下さい~。
mimeエンコーディング周りであることは間違いないのですけれども。
# nnnnnn 2008年06月16日(月) 午前9時58分
Qdmailバージョン:0.8.4a
OS:Fedora
文字コード:mb_convert_encodingでutf8にして渡しています。
ソースコード:
$mail = & new Qdmail();
$to[] = array('XXXXXXXX@docomo.ne.jp','docomo terminal');
$body = '<html><body bgcolor="#aabbff"><h1>HTMLメールテスト</h1><b>太字</b><font color="red">文字色を変えてみます。</font><div>文章中に置くことができます。</div><p>Send by Qdmail</p><div>携帯端末、キャリアによって使えるHTMLタグが違いますので注意してください。</div><div><a href="mailto:address@example.com">メールはこちらへ</a></div><div><a href="tel:00-0000-0000">電話はこちらへ</a></div></body></html>';
$body = mb_convert_encoding($body, 'UTF-8', 'EUC-JP');
$title = mb_convert_encoding('デコメテスト', 'UTF-8', 'EUC-JP');
$fromname = mb_convert_encoding('デコメテスト者', 'UTF-8', 'EUC-JP');
$mail -> easyHtml(
$to ,
null ,
$title ,
$body,
'demo@example.com' ,
$fromname,
);
exit();
他のソフトから同じメールを送信できるかどうか:
jphpmailerではできました。
# nnnnnn 2008年06月16日(月) 午前10時01分
ソースコード一部修正します。
カンマを取り除く
$mail -> easyHtml($to ,
null ,
$title ,
$body,
'demo@example.com' ,
$fromname
);
# spok 2008年06月16日(月) 午前11時00分
nnnnnnさん
情報ありがとうございます~。
DoCoMo SH903iの実機がないので、完全な再現はできないのですが、P905iの当方では再現しませんでした。。。。
しかし、jphpmailerさんでは、OKとのことですので、qdmailの原因かと思いますが。。。。。
というわけで、私宛に上記のhtmlメールをよろしければ送ってもらえませんか?
当該メールを spo kd eco test 以下、@ヤフーのアドレスに送りつけてみて下さい。上記のIDの空白は抜いてください。(@yahoo.co.jp)
直接送るのが抵抗あるのであれば、
送信直前に
$mail -> debug(2);
としておくと、実際にはメールが送信されませんが、その送るべきデータが、画面に表示されるはずです。それをコピペして、添付ファイルでお送りしただくか、ここのコメント欄に貼り付けて下さい。
ただし、このデータにはメールアドレスなどの情報がそのまんま入っていますので、ここに貼り付ける場合は、必ず「非公開コメント」にチェックマークを入れて下さい。
次は念のための確認です。
■携帯端末の設定で、添付ファイルは受信するようになっていますか?(他のメーラーさんで大丈夫なのだから、そうなっているとは思いますが。でも、jphpmailerさんってデコメ送れましたっけ?)
■デコメを送信するときには、easyDecoを使用していますか?(easyHtmlではなく)
さらにちなみにですが、
qdmailではmb_convert_encodingでわざわざutf-8に変換する必要はないです。そのままeuc-jpで渡しても、文字コードを自動判別するようになっています~。もちろん、今のままutf-8に変換していただいても大丈夫ですけど、どちらかというと内部エンコーディングのまま渡していただいたほうがトラブルは少ないかも知れません。
(もっとも、今回のトラブルとは関係ないと思います。)
# nnnnnn 2008年06月16日(月) 午前11時48分
記述が分かりづらいかもしれないので説明させていただきます。
easyHtmlで画像添付なし送信結果
[添付ファイル削除]のエラー
easyDecoで画像添付送信結果(画像は2つ、両方とも1kb以下のjpg)
[添付ファイル削除]のエラー
jphpmailerでは画像なしのhtmlメールを試した結果です。
# spok 2008年06月16日(月) 午後6時22分
keiさん
情報ありがとうございました。修正版をアップしましたのでお試し下さい。0.8.5a
原因は、
http://www.cpa-lab.com/tech/092
でした。これにyahooメールの一覧画面はうまくデコードできなかったようです。keiさんの情報がなければ気づかなかったところでした。ありがとうございました。
# spok 2008年06月16日(月) 午後6時30分
nnnnnnさん
メール&非公開コメント情報ありがとうございました。
そのメールを、P905iに転送したところ、不具合なく、表示されました。(html,デコメとも)。
SH903iの何かメールデコードに特有のものがあるように思いますが、jphpMailerさんがきちんと表示できるということなので、実機を友人から借りようと思います。ただし若干の時間がかかるかも知れません。この機種なのか、シリーズの問題なのかも今の時点ではわかりません。。。。
ちなみに、「添付ファイル削除」とだけ表示されるのは、ヘッダーのcontent-type(boundary以下)がうまくデコードできない時のようです。ですのでなんとなく、何かしらboundaryの制約があるのではないかと睨んでいます。
もし、他の機種でOK,NGなど情報ありましたら、教えていただけるととてもうれしいです。
# nnnnnn 2008年06月17日(火) 午前11時59分
debug(2)のデバック関数を使って、
easyHtmlとeasyDecoの関数で出力した結果の、
メール部分をJISに変換したファイルを、
qmailから直接qmail-injectでテスト送信したら、
問題なく表示されました。
phpの送信部分に問題があるのかもしれません。
ちなみにqdsmtpは使っていません。
phpのバージョンは5.2.5です。
# spok 2008年06月17日(火) 午後1時46分
おおお、重要な情報ありがとうございます。
SH903iの端末の問題ではなさそうですね。
こちらもPHPのmail関数に渡す部分を再検証してみます。
qmailについては、改行コードに若干の問題があるようです。(私も知りませんでした。)
参考URL)
http://d.hatena.ne.jp/hirose31/20060301/1141194913
http://ya.maya.st/mail/qmail-violations.html
ヘッダもLFのほうがよさげなので、qdmailの350行目付近に「var $LFC」の定義があります。これをCDLFではなくLFに変更してみてください。(”¥n”のみに変更(半角で))
# nnnnnn 2008年06月17日(火) 午後2時22分
var $LFC = "\n";
に変更してうまくいきました。
ありがとうございました。
# spok 2008年06月17日(火) 午後4時13分
nnnnnnさん
重要な情報をありがとうございました。qmailがこんなに特殊とは思ってもみませんでした。今後のバージョンアップ時には、qmailの自動判別機能を検討したいと思います。
# kei 2008年06月17日(火) 午後5時04分
spokさん
おかげさまで問題は解決しました。素早い対応ありがとうございます!
また一つ文字化けに関する問題(?)を発見しました。
(再現実験をしていないので、どのあたりに問題があるのかわからないです。申し訳ありません)
ロシア語であろう本文テキストを持つメールが当該フォームから送られていたのですが、その際に一部日本語項目(「AAAについて」というようなセレクト項目)が文字化けしておりました。
送信フォームで送る際の問題のような気がするので、完全な対応というものは不可能かもしれませんが、ご報告までに。
ありがとうございます。
# spok 2008年06月17日(火) 午後9時46分
keiさん
問題解決なによりです。こちらも助かりました。
ロシア語については、たぶんiso-2022-jpでは対応しきれないような気がしますが、再現するようであれば、お手すきの時にご連絡いただければ幸いです。(ロシア語の一般的な文字コードは、koi8_rというものだそうです。)
多言語対応するには、UTF-8 の Base64エンコーディング が最も文字化けしにくいとは思います。。。。。
# spok 2008年06月18日(水) 午後2時42分
nnnnnnさんの情報をもとに、0.8.6aをアップしました。
qmailの自動判別機能を備えましたが、私の環境でqmailを試すのが面倒なので、qmail環境のどなたか人柱になっていただけると幸いです。
http://hal456.net/qdmail/trouble
をご参照ください。
# kei 2008年06月23日(月) 午後2時39分
spokさん
お調べいただきありがとうございます。フォームの性質上、ロシア語でメールを受け取る必要性が低いので、iso-2022-jpのままで行くことにしました。
さて、新たな文字化けが発現しましたので報告いたします。
↓↓↓↓
スペック
↑↑↑↑
(半角カタカナで「スペック」と書いてあります)
全てを調べたわけではないのですが、文字列中に半角カタカナが混じっていると、半角部分が文字化けを起こすようです。
入力チェックの際に変換することで対応する方がよいでしょうか?
■Qdmail ver 0.8.5a
■WindowsXP Professional(ver2002) SP3
■PHPソースコードの文字コード、改行コード:UTF-8N、LF
# spok 2008年06月23日(月) 午後8時35分
keiさん
いつも情報ありがとうございます。
半角カナは非常に悩ましい問題で、今までほったらかしにしておりました。
http://hal456.net/qdmail/kana
のコンテンツを加えましたので、ご参照下さい。
一番いいのは、ヘッダーはiso-2022-jpのままで半角カナは使わせない(または全角カナに変換する)。本文は、UTF-8 + BASE64にして半角カナを使わせる方法です。UTF-8Nでうまくいくのかどうかはテストしていないので、わかりません。
ヘッダーもUTF-8でもいいのですが、一部のau携帯がヘッダーのUTF-8のmimeデコードができない機種があるので。。。。。
http://hal456.net/qdmail/kanaのどれもが完全な解決策ではありませんが、工夫してみていただければ幸いです。
文字化け完全制覇を目指すQdmailとしては、中途半端で心苦しいのですが。。。中期的に対応策を考えたいと思います。
# kei 2008年06月23日(月) 深夜1時22分
spokさん
いつもすばやい対応ありがとうございます。入力チェックの際に変換することで対応することにします。
「半角カナの送信」を拝読しました。
>ただし、mb_convert_kanaは、濁点も一文字として数えますので、
これは、mb_convert_kanaのオプション「V(濁点付きの文字を一文字に変換します。"K", "H" と共に使用します)」を使用すれば解決できそうな気がします。(また試してみることにします)
文字化け完全制覇、応援しております!
# spok 2008年06月24日(火) 午前7時19分
keiさん
Vオプションをすっかり見落としておりました。
ご指摘ありがとうございます。次回更新時に反映させたいと思います。m(__)m
# ひじり 2008年06月25日(水) 午後4時03分
qdsmtpと合わせてqdmailを愛用させていただいております。
同じ宛先に、本文を変えてメールを2通送りたいのですが、
$bodyを変更して、$ml->easyTextを2回実行しただけでは、内容が変わりませんでした。
newでもう一度生成するのは処理が遅くなるので、
一旦クローズする(メモリを解放する?デストラクタ?)ことができれば大丈夫なのかなと思いますが、
方法があれば教えていただけると幸いです。
# spok 2008年06月25日(水) 午後8時01分
ひじりさん
重要な情報ありがとうございます。バグです。
0.8.8aにて修正しておりますので、ご利用ください。
もし、現行バージョンでしのぐのであれば
easyTextで1回目を送った後に、
$ml -> reset();
としていただければ、たぶんいけると思います。
# ライト 2008年06月28日(土) 深夜1時53分
はじめまして、
素晴らしいライブラリをありがとうございます。
ひとつ質問させていただきたいのですが、
エラーメッセージをphpで受け取ることは可能でしょうか?
if($mail = & new Qdmail()) エラー内容;
のような方法が利用できれば便利だと思いました^^
# spok 2008年06月29日(日) 午後10時30分
ライトさん
if($mail = & new Qdmail()) エラー内容;
という方法は少々難しいかも知れません。
参考:http://www.php.net/manual/ja/language.oop5.basic.php#language.oop5.basic.new
かわりに、Qdmailのエラー処理の方法をアップしておきました。
いつかはアップしなくては、と思ってサボっておりましたが、ライトさんの後押しでアップロードすることができました。
http://hal456.net/qdmail/error_display
http://hal456.net/qdmail/error_base
あたりをご参照下さい。
# ライト 2008年06月29日(日) 午後11時29分
spok様
早急なご対応ありがとうございます。
やりたいことができるようになり、感謝の気持ちでいっぱいです^^
今後のご発展を心よりお祈りいたします。
# ひじり 2008年06月30日(月) 午前9時05分
早速のご返信とご対応、ありがとうございました。
ライブラリの素晴らしさはもちろん、対応の素早さに感服です。
今後も愛用させていただきます。
# spok 2008年06月30日(月) 午後1時07分
ご利用の皆様
トップページのコメント欄が多くなってきてしまいましたので、今後は、
http://hal456.net/qdmail/support
でお受けいたします。
皆さんの情報のおかげで、Qdmailはかなり安定してきていると思います。コメントしていただいた方、ありがとうございました。
こちらのコメント欄は、新規書き込みについては閉じさせていただきます。