ようこそゲストさん

Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte

ヘッダーが見えてしまう等

本文が消えてしまう。携帯でうまく受信できない。ヘッダーが見えてしまう

改行コードの変更
Qdmailでは、RFCに従い、ヘッダーの改行コードをCRLFとしています。
しかし、sendmailではないメール送信サーバー、特にqmailを使用している場合、改行コードがCRLFではなくLFのみでないと誤動作することがあるようです。
0.8.6.a以降のバージョンで、自動認識を装備していますが、当該自動認識がうまく働かない場合もあるかと思います。
その場合は、強制的に改行コードをLFのみにするように変更してみてください。
変更の仕方
ソースコードの50行目付近に、Line Feedの項目があり、var $LFC = ”¥r¥n”と定義している行があります。
ソース内を「$LFC」で検索してみてください。
それを半角で”¥n”と変更してみてください。¥rを削除するということです。
逆変更
Qdmailが、送信サーバーがqmailであると自動判別したけれども、それが逆効果になってしまう場合は、qmail判定した時であっても、CRLFにしておくことが必要になります。
上記のvar $LFC の定義の1行下に、var $LFC_Qmailの設定があります。これを半角で”¥r¥n”に変更してみてください。
ユーザーのソースコード内での改行コードの変更
$mail には Qdmailオブジェクト(インスタンス)が入っているものとします。
$mail -> lineFeed( ”¥n” ); //(実際は半角にて)
とすると、上記のようにQdmailのソースコードを変更しなくても、ユーザースクリプトサイドで、強制的に改行コードをLFのみにできます。CRLFに再変更するには、
$mail -> lineFeed( ”¥r¥n” );
としてください。
現在の改行コードを得るには、
$mail -> lineFeed();
と引数を省略すれば、返り値で現在の改行コードを返します。

なぜかテキストが文字化けする

mb_language('ja');
mb_internal_encoding('UTF-8');
UTF-8は例示ですので、お使いの文字コードにしてください。

または
php.ini にて
mbstring.language = Japanese
を設定してみてください。

# miztaka 2010年01月18日(月) 午後6時49分


件名に長い日本語がセットされている場合に、アウトルックやケータイのメーラーではQPの文字列がデコードされずにそのまま表示されてしまうという状況が発生しています。
lineFeed("\n") をつけてみましたが現象変わらずでした。
何か対処方法ありませんでしょうか?
自分でソースいじれますので案だけでもいただければやってみます。
以下、環境です。

■Qdmailバージョン 1.2.6b
■QdSmtpバージョン N/A
■PHPのバージョン 5.1

■OS名称 & バージョン CentOS5
■MTAの種類(sendmailかPostfixかqmailか) qmail
■お使いのソースコード(公開されて支障がある部分は適当に変更してください。)
$qdmail = new Qdmail();
$qdmail->lineFeed("\n");
$qdmail->errorDisplay(false);
$qdmail->from(array($admin_addr, $admin_name));
$qdmail->to(array($this->user_email, $this->user_name ."様"));
$qdmail->bcc($admin_addr);
$qdmail->addHeader('Errors-To', $admin_addr);
$qdmail->mtaOption("-f$admin_addr");
$qdmail->subject($this->subject);
$qdmail->body("text", $this->body);
$qdmail->send();

■ソースコードの文字コード、改行コード UTF-8, LF
■デバッグモード http://hal456.net/qdmail/debug での出力内容

# matsu-n 2010年07月24日(土) 午前10時20分

教えてください。
レンタルサーバー:Xserverです。

以下のエラー:
sh: -t: command not found
X-Powered-By: PHP/5.2.13
Content-type: text/html

Qdmail error: Qdmail Version 1.2.6b ,PHP Version 5.2.13<br>
Qdmail error: OS Linux ; PHP Version 5.2.13 ; Qdmail version 1.2.6b<br>
php.ini status: mb_language = Japanese ; mb_internal_encoding = UTF-8 ; mb_detect_order = ASCII,JIS,UTF-8,EUC-JP,SJIS<br>
Qdmail Status debug: 0, log: 0, errorlog: 0<br>
Qdmail error: No send . Because PHP mail function replied error line -> 2191<br>
Qdmail error: Send Error line -> 2116<br>
Qdmail error: Error happen, see upper line -> 2195<br>
Qdmail error: Send Error line -> 2116<br>


#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/0101/tb/