ようこそゲストさん

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

ドコモで添付ファイル削除

ドコモ(docomo)で添付ファイル削除

ドコモにデコメや添付ファイル付きメールを送信した場合、「添付ファイル削除」となってしまう場合があります。
原因のひとつとしてお使いのSMTP送信サーバーとドコモのサーバーがSMTPコネクションを上手に終了できないことがあるようです。

回避方法

mail()関数を使わずに、SMTP送信にて試行してみてください。
この場合のSMTPサーバーは一般のプロバイダを指定し、SMTP AUTH認証にて接続するのがいいと思います。
(要:Qdsmtp

# sniper 2010年06月18日(金) 午後8時32分

どこも写メール送信するのため、テンプレートがありませんですか?
SMTPで送っても結果が同じ。


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

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

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

改行コードの変更
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/

文字コード統一

Qdmailは、あらゆる環境で文字化けゼロを目指すメールライブラリですが、その様々な状況に対応するために、多くの場所で文字コードの自動検出を行っています。
ところが、この文字コード自動検出は、完璧にすることが難しいため、かえって問題を起こすことがあります。
例えば、UTF-8に文字コードを統一しているはずなのに、自動検出でSJISと認定されてしまうようなことです。
1.1.3b以降では、この自動検出機能を停止し、すべて統一文字コードでオペレーションを行うという宣言を用意しました。

例)すべてUTF-8で統一している場合。
$mail -> unitedCharset( 'UTF-8' );
これで、すべての自動検出ルーチンで、強制的にUTF-8と認識させることができます。

# Qdmail撲滅 2012年09月01日(土) 午後4時40分

文字化けゼロを目指すならはじめから自動検出なんかしなくて、全部明示的に指定するようにしろよ。馬鹿が。

# kenji 2015年06月12日(金) 午後6時00分

$mail -> unitedCharset( 'UTF-8' ); はどこに入れれば良いですか?


#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/098/tb/
  • 要注意のPHPバージョン4.3.11, 5.0.0 -4 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    PHP 4.3.11, PHP 5.0.0 - PHP 5.0.4の不具合mb_detect_encoding() が正しく動作しないバグ。文字化けの原因になります。回避方法: 文字コードをUTF-8かEUC-JPに統一し、unitedCharset()...

2008/09/26(金) 2008-09-26

Qdmaiのダウンロードページはこちら
  • 2008-09-26
    • 1.1.3b
Symfony対応

sendmailでの送信を可能にした。
 ただし、execの返り値がうまく取得できない環境もあり、その場合は、返り値が信用できない。

sendmail()メソッド、sendmailPatn()メソッドの追加
MEMETYPEいくつか追加
encoding()メソッド追加
qd_conver_encoding(),qd_detect_order(),qd_detect_encoding()メソッド追加
unitedCharset()メソッド追加

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