サポート過去ログ2

2008/10/24 サポート spok
▼ コメント(88件)
# sion 2008年07月15日(火) 午後5時30分

こちらでははじめまして。
PHP^USERSのMLではありがとうございました。

早速なのですが、使い方についてです。
Qdsmtpでは日本語が扱えないとのことなので、こちらのQdmailを併用して
利用を考えているのですが、初期化とその後の流れてについて教えていただいても
よろしいでしょうか。

自分が試したのは、
1.require_once("qdmaill.php")でファイルをインクルード
2. new でqdmailオブジェクトを作成
3. qdmailの初期化&送信データ設定
4. qdsmtpの初期化&送信データ設定
5. send()メソッドで送信をしたのですが、エラーになってしまいます。

おそらく、初期化設定とその後のメソッドを使う部分が間違っているのだと
思うのですが・・

お忙しいところ申しわけないのですが、二つを組み合わせた使い方を
サンプルをご提示いただけないでしょうか。
よろしくお願いいたします。

# spok 2008年07月15日(火) 深夜0時12分

こんにちは。某所ではどうもです。ご利用ありがとうございます。

http://hal456.net/qdmail/smtp
に、SMTP送信のサンプルコードを付け足しておきました。ご参照ください。

もし、うまくいかないようだったら、こちらに以下の情報をお寄せください。
メールアドレス、SMTPID,パスワード部分は、差し支えのないように変更するか、
「非公開コメント」にチェックするか、などで対応してください。


■Qdmailバージョン
■QdSmtpバージョン
■お使いのソースコード
■お使いのOS & バージョン
■SMTPサーバーの種類&バージョン(sendmailかPostfixかqmailか。これはわからない場合もあるとは思います。)


# sion 2008年07月16日(水) 午後1時10分

こんにちわ、お忙しい中、サンプルありがとうございました。
早速、自分のサーバーでテストしてみたところ問題なく動きました。
似たようなものを作成して気づいたのが、Qdmailの柔軟性の高さです・・
これで思い通りのシステムが作れそうです。ありがとうございました!


# bombom 2008年08月19日(火) 午後0時14分

はじめまして。bombomと申します。

現在、携帯へ添付ファイルを送信しようとしておりますが、どうしても添付が認識されずに悩んでおります。

送信はqd_send_mailを使い、本文:utf8,base64、ヘッダ:iso-2022-jp,7bitで送信していますが、
PC宛へは問題無く届くものの携帯(au)へは、添付が削ぎ落とされてしまいます。文字化け等はありません。

恐らく、AUの特殊仕様?かと思い、さまざまヘッダの順番を変えたり、修正しておりますが、未だ実現に至ってはおりません。

なお、versionは1.0.4b、文字コード以外の設定は全てdefaultで、unix系サーバで動かしております。
念の為SMTPを変えてみましたが変わりません。

もし情報をお持ちでしたらご教授頂けませんでしょうか。
お忙しいかとは思いますが、何卒宜しくお願い致します。

# spok 2008年08月19日(火) 深夜1時43分

bombomさん
重要なご指摘ありがとうございます。
もっとも基本的な部分でタイポしておりました。

1.0.5b または 0.9.4.002 にバージョンアップしていただければ、問題は解消されるかと思います。
それでもダメな場合はお手数ですが、もう一度ご連絡ください。

その再は、PHP,Qdmailのバージョン及び差し支えない範囲でのソースコードをみせていただければ幸いです。

# bombom 2008年08月26日(火) 午後5時05分

ご連絡が遅くなり、申し訳ございませんでした。
1.0.5b にバージョンアップし、解決致しました。
今後共も利用させて頂きます。
この度は早々にご対応頂き、真にありがとうございました。

# ひじり 2008年08月27日(水) 午後2時31分

お世話になっております。
Qdmail+QdsmtpをPHP5の環境で動作させたところ、
QdSmtp error: Error RCPT setting line -> 473
というエラーが表示されてしまいました。
宛先(TO)には問題なく送信されるのですが、BCCへ送信されません。

qdsmtp.phpの該当箇所を見てはみたものの、解決できそうもないのでご助言いただければ幸いです。
よろしくお願いします。

# spok 2008年08月27日(水) 午後3時27分

ひじりさん
スポックです。ご不便をおかけして申し訳ありません。
たぶんqdsmtpではなくて、Qdmailでのアドレス指定の問題のような気がします。

下記の情報をお寄せ下さい。
■Qdmailのバージョン
■Qdsmtpのバージョン
■ソースコード
ソースコードについては、差し支えある部分については変更していただければよいのですが、メールアドレスそのものの問題があることもあるので、(例:RFCに準拠していないメールアドレスの場合など)、できましたらメール送信部分を「非公開コメントにチェック」の上、お見せいただければと思います。
もしくは、私の連絡先
http://hal456.net/qdmail/whois
からメールにてソースコード部分をお知らせ下さると、解決できる可能性が高くなります。

また、toとbccのアドレスを交換した場合、toに送信されるかどうかもお教えいただければ幸いです。

さらに、Qdmailを1.0.7b以降にバージョンアップした場合にエラーメッセージが変わるかどうか、お試し下さい。

# ひじり 2008年08月27日(水) 午後4時41分

さっそくのご返信ありがとうございます。
いつも対応の早さに感服いたします。

■Qdmail ver 1.0.1b
■Qdsmtp ver 0.1.4a

$option = array(
'type' => 'text',
'smtp' => $smtp,
);
$header['From'] = array(ADMIN_MAIL, ADMIN_NAME);
$header['Bcc'] = array(ADMIN_MAIL, ADMIN_NAME);
として
qd_send_mail($option, $mailto, $subject, $body, $header, $attach, 0);
で動かしていました。

アドレス交換でも同じ現象でしたし、
Qdmail1.0.7bでも同様でした。(エラーメッセージも変わっていません)

ただ、設定方法に問題があるのかと思い、$optionを使わず
qd_send_mail('text', $mailto, $subject, $body, $header, $attach, 0);
としたところ、問題なく送信できました。

Qdsmtpのバージョンが古いためでしょうか?

# spok 2008年08月27日(水) 午後7時02分


うーん。最新のQdmailでも、エラーが同じということは、Qdsmtpが原因かも知れません。
お手数をおかけしますが、ログをとってみていただけないでしょうか。

qdsmtp.php の32行目あたりに、
var $errorlog_level = 0;
var $log_level = 0;
という定義があるかと思います。これを
var $errorlog_level = 1;
var $log_level = 1;
にしていただき、環境に合わせて、そのすぐ下のログファイル名を、変更してください。

var $log_filename ='qdsmtp.log';
var $errorlog_filename ='qdsmtp_error.log';

ファイル名の指定の仕方は、http://hal456.net/qdsmtp/log
を参考にしていただければ幸いです。
その上で、送信動作を行い、通常のログファイル(qdsmtp.log)の方をみていただき、当該bccのメールアドレスをテキスト検索してみてください。
そこのステータスコードが250以外の例えば550とかになっている行があるはずです。その近辺のログを支障のある部分は変更してみせていただけると何かわかるかもしれません。
場合によっては、そのメールアドレスがログに現れてこない場合もあるかも知れません。その場合は別の原因を探ります。
例えば、私の環境で、無理矢理エラーを出してみた場合、
QdSmtp RCPT TO:<address_exmaple.com>
Server 550 5.1.1 <address_exmaple.com>... User unknown
という感じのログがでます。
250以外のものが怪しいです。
「550,551,552,553,450,451,452,500,501,503,421」あたりが出てくる可能性が高いです。

また、私のマニュアルの記載ミスなのですが、bccにおいては、日本語名(表示名)の指定が意味がありません。bccはメールアドレスのみの指定となります。現在のように日本語名(表示名)を指定していても無視されるはずなので、影響はないと思いますが、念のため、
$header['Bcc'] = array(ADMIN_MAIL);
としてみてください。

なお、お使いのQdsmtpが最新版ですので、そこはたぶん関係ないです。

# spok 2008年08月27日(水) 午後8時13分


ひじりさん

ひとつ前のログうんうんのコメントは忘れていただいて、以下のURLから最新のQdsmtp0.1.5aをダウンロードして、どんなエラーがでるかみていただけないでしょうか。
今、一つ前のコメントのログ内容が見られるように、急遽バージョンアップしました。

http://hal456.net/qdsmtp/download

# ひじり 2008年08月28日(木) 午前11時12分

ありがとうございました。
Qdsmtp0.1.5aで試してみたところ、下記のエラーが表示されました。
spokさんが最初に懸念していた通り、gmailが原因になっているっぽい感じですね。
(メールアドレスのアカウントのみ伏せてあります)

QdSmtp error: Failure :status553 message:553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1) on RCPT TO:<xxxxxx@gmail.com>
line -> 527
QdSmtp error: Error RCPT setting line -> 473

BCCの日本語名についてのアドバイスもありがとうございます。
特にエラーが変わることはありませんでしたので、大丈夫だと思います。

# spok 2008年08月28日(木) 午後1時06分


ひじりさん
このエラーがでるということは、SMTPサーバー認証に失敗している可能性があります。
他のメールアドレスに送信できたということは、そのアドレスというのは、そのSMTPサーバーが管轄するドメインではないでしょうか。たぶん、gmailのみならず、他のドメインにも送信できないのではないかと想像しています。。。
SMTPサーバーの第三者中継拒否のセキュリティにかかってしまっているように見えます(違うかも知れませんが)。

以下の情報をお知らせ下さいませ。
■$smtpの変数にて、SMTP AUTHまたはPOP Before SMTPの設定をしていますでしょうか?
 もしくは、認証のないサーバーとしての初期設定でやっていらっしゃいますか?

たぶん、認証設定が間違っているか、認証なし設定でやっていると、このエラーがでるかと想像しています。
(違うかも知れません。)
認証設定を行っている場合には、今一度、設定情報が正しいかどうか確認してみてください。
(参考URL)
http://hal456.net/qdsmtp/init
(注:このページのSMTP_AUTHの記載が間違っていた事に、今、気づいてしまいました。。。修正してあります。)

認証なし設定でやっている場合は、そのSMTPサーバーの管理者等に問い合わせるなどして、SMTP AUTHの設定情報を聞いてみて下さい。
POP Before SMTP よりは SMTP AUTH の方をオススメします。

また、2つ前のコメントにあるようなログを取ると、認証に成功しているか失敗しているかわかりますので、ログをとってみて最初のほうの認証している部分でエラーがでているかどうか、を確認するのも有効な手段かと思います。

■そのメールアドレスの左半分は、特殊な形式ではないですよね?
 ドットが2つ以上続いていたり、記号が使われていたりして、RFCに従っていない可能性はないですか?

もし、SMTP認証も成功しているにもかかわらず、このエラーがでる場合があるのかどうか、ちょっとわからないのですが、今一度、やってみていただければ幸いです。

# ひじり 2008年08月29日(金) 午後1時30分

たびたびありがとうございます。
認証なしで使用しているので、
> SMTPサーバーの第三者中継拒否のセキュリティにかかってしまっているように見えます
これが一番の原因である可能性が高そうです。
もう一度設定の部分から洗い出すことにします。
迅速で親身な対応、本当にありがとうございました。

# spok 2008年08月29日(金) 深夜0時30分


SMTPサーバー送信は、実装としては2種類あるかと思います。ひじりさんはご存じかと思いますが、他の方のために書いておきます。

その1
認証ありで第三者中継を許すサーバーにで接続し、各到達地点のSMTPサーバーに中継してもらう。(これが、QdSmtpの実装です。)
この方法の利点は、到達地点のSMTPサーバーになんらかの理由で接続できなかった場合でも、最初のSMTPサーバーが、メールを留保し、後で、送り直しをしてくれるため、到達確立が安心できるレベルにあるということです。その代わりに、そのSMTPサーバーに自分がアカウントを持っていなければなりません。例えば、私はレンタルサーバーのSMTPサーバーやso-netのアカウントも持っていますので、たまにso-netのSMTPサーバーに認証ありで、中継してもらっています。

その2
送り先のメールアドレスに合わせて、その都度異なる(当該メールを管理する)SMTPサーバーに認証なしで接続して送信する。認証なしサーバーは第三者中継は行わないものの、そのSMTPサーバーが管理するドメイン(サブドメイン)のメールボックス宛であれば、認証なしで受け入れます。到達地点のSMTPサーバーに直接接続する方法です。
この方法の利点は、直接接続なのでより高速&どこにも認証がいらない、という点です。一方で、送り先のメールアドレスから、IPアドレスなり、SMTPサーバーなりを逆引きしなければならず、また、接続エラーの場合の処理を自前で実装しなければならない、という点が欠点です。特にエラー処理は、PHPだけでは完結が難しく、必ず、サーバーの設定等も必要になることが多いので、可搬性のよくない(万人向けではない)ソフトになってしまうということです。

いずれは、Qdsmtpも、その2 の方法もサポートしたいとは思いますが、現状では、その1の方法だけなので、いろんな所にメールを送りたければ、サーバー認証またはPOP Before SMTPにて、対処しないといけないと思います。

# spok 2008年08月30日(土) 午前11時17分

解説もどきを掲載しておきました。

http://hal456.net/qdmail/smtp_method

# ぺいん 2008年09月03日(水) 午後2時04分

失礼いたします。qdmailを拝見しました。
日本語に対して安定しているので本当に素晴らしいと思います。
重要度の設定もでき、問題なく動作しました。
受信確認や配送確認を設定したいと考えておりますが、
どのようにしたらよろしいでしょうか?

# spok 2008年09月03日(水) 午後10時03分

ぺいんさん

以下をご参照下さい。
http://hal456.net/qdmail/notification

# ぺいん 2008年09月04日(木) 午前7時50分

よくわかりました。
ありがとうございました。<(_ _)>


# 添付ファイル削除 2008年09月04日(木) 午後1時35分

■動作環境
qdmail.1.0.8b
CencOS 5
Apache 2.0
PHP 5.1
Postfix 2.2.10

■症状
以下のようにデコメを送信すると、ドコモだけ失敗します。
携帯で受信したメールが、
[添付ファイル削除]
        • END----
となってしまいます。AU、SoftBank端末には期待通り送信できます。
ドコモ端末:N902iX,P705i,P905i他

添付画像なしのデコメも、全く同じ症状になります。
原因はQdmailへの設定不足でしょうか。



■ソースコード

$body = '<html><body bgcolor="#aabbff">
<div>画像はこのように</div>
<img src="cid:ng.jpg">
<div>置くことができます。</div>
</body></html>';



$mail = & new Qdmail();
$mail->inlineMode( true );
$mail->autoDecoJudge( true );
$mail->toSeparate( true );
$mail->charsetBody( 'utf-8' , 'base64' );
$mail->kana( true );

$mail->attach('ng.jpg');

$mail->to(array('********@docomo.ne.jp', '*******さん'), null, true);

$mail->subject('デコメのテスト');
$mail->from('from@******');

$mail->html($body);

$mail->send();


# spok 2008年09月04日(木) 午後9時48分

添付ファイル削除さん

スポックです。ご不便おかけして申し訳ありません。
私の環境では問題ありませんでした。(端末はP905i)。
まず、以下をご確認ください。
http://otoiawase.nttdocomo.co.jp/PC/qa/?qa=113060&c1=13&c2=7
それでもダメな場合、以下をお試し下さい。

$mail -> debug(2);

を加えてみて、表示されるデータを、このコメント欄に「非公開コメント」にチェックを入れて送信するか、
私宛のメールに当該データを添付ファイルにして送ってみて下さい。当方にメールを送る場合にはsubjectに必ず、「qdmail」の言葉を入れて下さい。

$mail -> debug(2);はデバッグモードであり、実際にはメールは送信されません。

また、添付ファイルなしの通常のテキストメールの場合は、内容がちゃんと送信できますでしょうか?

なお、PHP5では、newの後の & は必要ありません。

# 添付ファイル削除 2008年09月04日(木) 午後10時37分

早速のご回答、ありがとうございます。
デバッグモードで出力されたデータを、先刻「非公開コメント」でお送りしました。宜しくお願いします。

また、「添付ファイルなしの通常のテキストメール」は、まだ試していません。手元に環境がないので、明朝試してみます。
(「添付ファイルなしのデコメール」は、既述のとおり失敗しました。)


# spok 2008年09月04日(木) 午後11時49分

Qdmail側の原因はまだ不明ですが、いただいたデータをみると、やはり変なところに改行が入っていますね。

    • __Next-3-TYUWRtYWlsIEFHUEx2Mw==UmA=__
Content-Type: text/html; charset="iso-2022-jp"
(改行)
Content-Transfer-Encoding: quoted-printable

ここは通常改行が入らないところなので、
http://hal456.net/qdmail/trouble
をご参照のうえ、改行コードをLFのみにしてみてください。
(PostFixなので、この件は関係ないかも知れません。)

こちらでも、どのような場合に、htmlパートに改行が入り込むか調べますが、こちらで再現しないので、ちょっとやっかいかも知れません。しばらくお時間いただきます。

できればSMTP送信もためしてみていただければ幸いです。
SMTP送信で無事送信できれば、環境の問題、同じ症状であれば、Qdmailの問題です。(たぶん)

# spok 2008年09月04日(木) 午後11時53分

あ、書いた後に気づきましたが、debug(2)でこの症状ということは、Qdmailの問題ですね。(たぶん)

# spok 2008年09月05日(金) 午前7時37分

また、関係ないところだとは思いますが、デコメの時は
$mail->charsetBody( 'utf-8' , 'base64' );
の指定は無効ですので、はずしてみてください。
国内キャリアの場合は、すべてiso-2022-jpの7bit or Quoted-Printableになります。
Qdmailのソースをちょこっといじれば、utf-8,base64もできるのですが、それだと文字化けする携帯端末がでてくるので、現状では対応していません。

# 添付ファイル削除 2008年09月05日(金) 午前10時37分

誠意ある調査ありがとうございます。
「htmlパートに改行が入り込む」
についてですが、先刻再度デバッグログをお送りしたとおり、改行は入っていないようです。

「text/plain」の部分に、文字化けした文章が出力されていましたので、この部分を適度に削り、文字化けのない状態にして、SMTP送信したらきちんと送信できました。

「text/plain」の出力内容に問題があるのではないでしょうか。


# spok 2008年09月05日(金) 午後0時05分

ログをありがとうございます。
念のための確認ですが、本文に半角カナ、または、ハシゴ高(髙)などのiso-2022-jpに入っていない文字は使用していないでしょうか?
参考:http://www003.upp.so-net.ne.jp/hat/imail/sec06.html
参考:http://homepage1.nifty.com/akshiba/pclec/mail/mailchar/mailchar.html

その上でまだ文字化けするようですと、以下を試してください。
(mb_detect_encodingが正しく文字コードを判定できていない可能性があるため)
$body で、貴殿がQdmailに渡す文字列の文字コードを明示的に指定することができます。


$body_content = '<html><body bgcolor="#aabbff">
<div>画像はこのように</div>
<img src="cid:*****.jpg">
<div>置くことができます。</div>
</body></html>';

$body= array('content'=>$body_content,'_ORG_CHARSET'=>'UTF-8');

SentOSであればたぶんUTF-8なので、上記の例はそうしましたが、異なる場合は、UTF-8の代わりに、正しい文字コードを指定してください。
_ORG_CHARSETの最初のアンダーバーを忘れないようにしてください。

それでも文字化けする場合、「Qdmailに渡した文字列&文字コード情報」「$mail -> debug(2);での text/plainパートを非公開コメントでいただければ幸いです。


# 添付ファイル削除 2008年09月05日(金) 午後2時26分

ご指摘どおり、
$body= array('content'=>$body_content,'_ORG_CHARSET'=>'UTF-8');
で実行しましたが、まったく同じ結果でした。

$body の内容と、実行結果の「text/plain」部分のセットを、幾つかお伝えします。


■$body = '<html><body bgcolor="#aabbff">
<marquee behavior="alternate">あらマーキー</marquee>
</body></html>';

■結果
    • __Next-3-FEUWRtYWlsIEFHUEx2Mw==Zz4=__
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

う髟阡擦薀沺��キ・踉�(B
    • __Next-3-FEUWRtYWlsIEFHUEx2Mw==Zz4=__
■$body = '<html><body bgcolor="#aabbff">
<div>画像はこのように</div>
<img src="cid:dufy01.jpg">
<div>置くことができます。</div>
</body></html>';

■結果
    • __Next-3-MIUWRtYWlsIEFHUEx2Mw==els=__
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

画像はこのよう瘢雹に
置くことができます。
    • __Next-3-MIUWRtYWlsIEFHUEx2Mw==els=__
■$body = '<html><body bgcolor="#aabbff">
半角カナや特殊文字は、文字化けします。
</body></html>';

■結果
    • __Next-3-JFUWRtYWlsIEFHUEx2Mw==a2A=__
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

筈苳山僖�覆籠脱踉詞文字は・髟阡司源擎修韻靴泙后�(B
    • __Next-3-JFUWRtYWlsIEFHUEx2Mw==a2A=__

# とおりすがり 2008年09月05日(金) 午後2時26分

前は
$attach[] =array('a.jpg','b.jpg');
<img src="cid:b.jpg">

でa.jpgをb.jpgに変更して送信できていたと思うのですが、

1.0.8bでは
・ファイル名は変更されて送られる
・送信メールにcidがそのまま付いてきてしまい表示できない

ようになっているみたいです。

# spok 2008年09月05日(金) 午後6時45分

添付ファイル削除さん

ようやく一部分ですが、こちらでも再現しました。
おそらく、php.ini で mbstring.language が設定されていないからではないでしょうか。
以下を試してみてください。

mb_language('ja');

これでもダメなら、以下にしてみてください。(祈る気持ち)

mb_language('ja');
mb_internal_encoding('UTF-8');

できれば、php.ini のmbstring.languageを、ja または Japanese に設定するのが一番よいと思います。

たぶん、これで治ると思いますが。。。。
今後のバージョンアップ時には、この設定・非設定を検出して、自動で設定するようにしたいと思います(ただ、そうすると多言語対応が。。。)

# spok 2008年09月05日(金) 午後6時46分

あ、でもauには大丈夫なんですよね。。。。??もしかしたら、違うかも。

# spok 2008年09月05日(金) 午後6時47分

さらに付記ですが、mb_language('ja');は、スクリプトのなるべく最初の方に配置するのを推奨します。

# spok 2008年09月05日(金) 午後6時50分

とおりすがりさん

いろいろ理由があって、その指定方法は、バージョン1系では使用できません。
参考
http://hal456.net/qdmail/oopattach

申し訳ありませんが、
$attach[] =array(array('a.jpg'),array('b.jpg'));
としていただければ幸いです。
コードが整理できれば、いずれまた、その指定方法も復活させたいとは思うのですが。。。

# 添付ファイル削除 2008年09月05日(金) 午後10時37分

ざ、残念ながら、php.ini の設定は万全です。
祈る気持ちで
mb_language('ja');
mb_internal_encoding('UTF-8');
をファイル冒頭に書いてみましたが、やはり変わらずです。

ちなみに私の使用しているサーバは、携帯サイトが正常に動作している(携帯宛メールが正常に送れている)専用サーバなので、基本的な設定は大丈夫(のはず)です。

DoCoMoの時だけ、text/plain 部分をブランクにして送信できないものでしょうか。。。

# spok 2008年09月05日(金) 午後11時38分

何度もお手を煩わせ申し訳ありません。

何度も確認してすいませんが、実は、デバッグモードだけの文字化けが発生する可能性があることがわかりました。(htmlspacialcharsが、お行儀よろしくないことがわかった。)
つまり、デバッグモードで文字化けしていても、実際の送信はOKの場合があり得るというこです。
(これじゃデバッグにならないですね。。。)

大変申し訳ありませんが、
mb_language('ja');
mb_internal_encoding('UTF-8');//または euc-jp
を設定した上で、「実際にドコモにデコメを送信した結果」はどうであったかお教え願えますでしょうか?

また、
$mail->whichTextHtml( 'html' );
とすると、text/plain 部分は作成しませんが、代替テキストがない状態となりますので、デコメ非対応機種で何も表示されなくなります。(あまりオススメはしたくないのですが。。。。)

# spok 2008年09月05日(金) 深夜0時05分

あ、mb_languageといっしょにこれも置いておくといいかも知れません。
mb_detect_order('ASCII,JIS,UTF-8,EUC-JP,SJIS');


# spok 2008年09月05日(金) 深夜0時18分

ついでですが、1.0.9b を試してみる、という手もいいかも知れません。
http://hal456.net/qdmail/downloads

# 添付ファイル削除 2008年09月05日(金) 深夜1時14分

mb_language('ja');
mb_internal_encoding('UTF-8');//または euc-jp
を設定した上で、「実際にドコモにデコメを送信した結果」は

NGでした。まったく変わらずです。。。



# 添付ファイル削除 2008年09月05日(金) 深夜1時17分

なんと、
$mail->whichTextHtml( 'html' );
でも駄目でした。全く同じ結果になります。

# spok 2008年09月06日(土) 午前7時21分

ご利用いただいているのに、うまくいかなくて、本当に心苦しいです。
ただ、$mail->whichTextHtml( 'html' );でも同じということは、text/plainが原因ではない可能性が高いです。

元に戻ってしまいますが、以下をお願いすることはできますでしょうか?

$mail ->deco_def_default=1;

(メソッドではなく、プロパティを直接いじっていますのでご留意ください。)
を付け加えて、以下のメールアドレスに当該メールをお送りいただくことは大丈夫でしょうか。
spokdecotest アットマーク yahoo ドット co ドット jp

これでPCアドレスであっても、DOCOMOのマルチパート構成にて送信することとなります。
これで原因がわからなければ、正直なところ手詰まりかもしれないです。。。。
こちらで再現すればいいのですが。。。。。

# spok 2008年09月06日(土) 午前7時43分

あ、SMTP送信もできるのであれば、通常送信とSMTP送信の両方をいただければ幸いです。。。

# spok 2008年09月06日(土) 午後10時23分

とおりすがりさん

私も気になっていた部分ですので、$attach = array( filename , filename , ..... );式も限定付きで復活させました。Qdmail 1.1.0b以降を利用してみてください。

参考 http://hal456.net/qdmail/oopattach

# 添付ファイル削除 2008年09月07日(日) 午後5時13分

長々とお付き合い頂き、恐縮の極みです。
先程、ご指定どおりのメールをお送りしました。ご確認下さい。
私のPC宛にも送ってみましたが、文字化けせずに受信できました。原因はささやかなものなのでしょうね。。
ちなみに、この設定でドコモ宛に送ると、今までと変わらない結果になっています。

# spok 2008年09月07日(日) 午後10時16分


添付ファイル削除さん

メール確かに受け取りました。きれいな画像ですね。
さて、このメールアドレスから私の携帯(Docomo P905i)にQdmailReceverを用いてそのまま転送しました。
その結果、
きれいに受信できています。特に異常はありませんでした。

秀丸メールの「そのまま転送」機能を利用して、そのまま転送しました。
その結果、
きれいに受信できています。特に異常はありませんでした。

念のため、PCで受けたメールログ(秀丸メール)及びQdmailRecever及び目視にて、受けたメールのマルチパートを解析しました。

その結果。
特に異常はありませんでした。

以前の貴社コメントでSMTP送信した場合には、添付ファイルも受け取っているとのことです(よね)ので、クライアント側の設定の問題でもないようです。

正直なところ原因不明です。

希ですが、お使いのメールサーバーとDOCOMOのサーバーの相性が悪いということも考えられます。貴社からドコモへ大量にメールを送信している場合には起こりえることですが、この場合は全く受信できなくなってしまうはずなので、添付ファイルだけ削除ということは考えにくいです。
http://www.nttdocomo.co.jp/service/mail/imode_mail/notice/mass_send/


なお、当方に送っていただいたのは、PHPのmail関数を使ったタイプかと思います。
これを QdSmtp を使用して、SMTP送信しての結果は如何でしょうか?
その際、自社でなく、「一般のプロバイダのSMTPサーバー」にて試してみて下さい。
また、
$mail ->deco_def_default=1;
のままPCに送信し、そのPCアドレスの転送設定で、ドコモ携帯に転送し、正しく受信できるかどうか、というテストも意義があります。(しかし、SMTP送信は絶対に試すべきです)。


これで正しく受信できていれば、貴社サーバーとドコモサーバーの相性または経路の問題。
正しく受信できなければ、原因不明です。(なぜなら、同じメールを私のドコモ携帯に送信した場合に正常に表示されるため)。確か貴社もP905iへ送信異常があったと思いますが、私の端末も同じものです。

ただし、貴社でお使いの N902iX は、メール受信サイズが10kbを超えた場合、若干特殊な挙動をするようです。いただいたメールのサイズは約84kbですので、テストの際は、念のため、もう少し小さい画像(5kb程度)で実施することをオススメします。905シリーズは100KBまで大丈夫のようですね。

また、貴社からいただいたmailtoに私の携帯のメルアドも送信しました。よろしければ、同じものをご送付いただいても結構です。

Qdmailが作成したヘッダーを含むメール本体には異常がみられない&当方の端末では問題なく表示できる、という点から、後はサーバー間の通信異常を疑うほかないのですが。。。。もう少し考えますが、若干、手詰まり感があります。



# spok 2008年09月08日(月) 深夜1時11分


添付ファイル削除さん

当方へのテストデコメ(mail関数版)ありがとうございました。
その結果、
デコメは表示されず、「添付ファイル削除」
となりました。そちらの症状と同じです。

まだSMTP送信のものについてはいただいていませんが、たいへん悩ましい結果になっています。
一般のプロバイダの送信サーバーを使用したSMTP送信の結果がわかれば幸いです。

ヘッダーを含む本文がQdmailで適切に作成されているようなので、
原因としては、
1 貴社環境とQdmailの相性
2 貴社サーバーとドコモサーバーの相性
のどちらかと思いますが、auには届いてという点から、2の可能性が高いように推察しています。
しかし、具体的に何が原因か、と言われるとわかりません。

こちらで、貴社と同じコードを試行しても、正常に送受信されるので、症状を再現することができず、原因究明の手段が限られています。。。。
ただ、「添付ファイル削除」というのは、大きいファイルサイズのものを受信した時にでるようなので、何らかの原因で、SMTPのコネクションが終了できていない可能性があるかと思います。(終了できなから、受信最大サイズを超えたと判断されてしまう。)
PostFixのログをみれる環境であれば、おそらく異常終了しているのではないかと思うですが。。。。。
ネットで検索するといくつか、PostFixとドコモサーバーの相性問題ができています。。

なお、私は前回のコメントで重大な誤りをしておりました。
$mail ->deco_def_default=1;
ではなく
$mail ->deco_def_default=2;
の誤りです。

ただし、今回の場合は、おそらく結果はかわらないと思います。


# 添付ファイル削除 2008年09月09日(火) 午後9時33分

長らくの対応、ありがとうございました。
結果から申し上げると、
・Qdmail の出力結果をSTMPプロトコルに従い「data」として送るとOK
・Qdmail のmail関数で送信する方法ではNG
・Qdmail とQdsmtp の組み合わせで送信するとOK
という結果になりました。
絵文字はどうやって送ればいいのか、そこだけまだ分かっていませんが、調べてみます。
ありがとうございました。今後も有意義に使わせて頂きます。

# spok 2008年09月09日(火) 午後11時18分


添付ファイル削除さん

ご連絡ありがとうございます。
想像の域を出ませんが、やはり、貴社SMTPサーバーとドコモSMTPサーバーのコネクションがうまく終了できていないことが原因かと思います。理由はPostFixの設定か、mail関数の不具合、mail関数とPostFixの相性等が考えられるかと思います。
ともあれ、制限つきながら正常に送信できてよかったです。

また、絵文字については、デコメのbodyの中に

など、http://mcap.symmetric.jp/glyph/index.htmlを参考にして、数値エンティティの形にすれば送信することができます。

ただし、Qdmailではこれをキャリア毎に変換する機能は現時点(0.1.0b)では持っていませんので、送るキャリアごとに内容を変える必要があります。
時間があるときに絵文字については今後考えてみます。

# とおりすがり 2008年09月10日(水) 午前10時33分

一つのインスタンス$mail = & new Qdmail();で、
一旦htmlやattach使いまくって$mail->sendした後、
$mail->easyTextを使用するとhtmメールが送られてしまいます。

まあ$mail->resetすればいいだけなのですが
これってautoDecoJudgeやcharsetBodyあたりもリセットされてしまうので微妙に使いづらい。


# とおりすがり 2008年09月10日(水) 午前10時34分

↑バージョン書き忘れ

PHP Version 4.3.2
Qdmail ver 1.0.8b


# spok 2008年09月10日(水) 深夜1時03分

とおりすがりさん
これって、気になっていたのでこの期に修正した。
http://hal456.net/qdmail/reset (参考)
1.1.1bからは、$mail -> reset(); を使わなくても、easy~メソッドは、自分で実行前に、resetBody(),resetBody()に呼ぶようにした。

# 絵文字 2008年09月11日(木) 午後6時42分

絵文字ですが、docomoには「数値エンティティの形にすれば」送信できますが、キャリア変換はできないのでしょうか。
一斉配信するような場合、キャリアごとにメール本文を作り直してQdmailに渡す必要があるのでしょうか。

# spok 2008年09月11日(木) 午後9時43分


絵文字さん

絵文字については、現在のところ(1.1.2b)キャリア変換機能はありません。
キャリアごとに本文を作り直していただく必要があります。

そんなに難しいロジックではないので、時間がある時に対応したいとは思いますが。。。変換テーブルを持たせるとそれなりの容量となるので、別ファイルにすべきか、Qdシリーズの特徴のとおり、1ファイル構成にするか悩ましいところです。。。。
絵文字変換の要望が多ければ考えマスです。

# ひでき 2008年10月01日(水) 午後8時03分

素晴らしいコンポーネントの配布ありがとうございます。
バグ発見しましたのでご連絡です。

■バージョン
最新の 1バージョン。

■状況
cakephp1.2 で cakeText を使い送信時のバグ
・送信後の文字コードが 強制的に UTF-8 になってしまう。
これにより、サンダーバードで受信後に見るとアルファベットが斜体になり見づらくなる。

■解決策
qdmail0.系の最終バージョンを使ったら一発で直りました。

よろしくお願いします。


# spok 2008年10月01日(水) 午後9時46分


ひできさん

ご連絡ありがとうございました。
修正してありますので、 1.1.7b 以降にてお試し下さい。
それでも不具合ある場合には、お手数ですが、再度ご連絡ください。


# ひでき 2008年10月02日(木) 午後7時51分

最新の 1.1.7b でバグ直ってました!ありがとうございます。
お礼の意味をこめて使い方をブログに書いてみました!
http://www.hideblog.net/admin/nikkis/show/91

# spok 2008年10月02日(木) 深夜0時26分

ひできさん

ご丁寧な使い方の記事ありがとうございます。
http://www.hideblog.net/nikkis/show/91
今後ともご愛用いただければ幸いです。