ようこそゲストさん

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

How to use by Multibyte except JP-Qdmail

PHP4
$mail = new & Qdmail( 'charset' , 'encoding' );
PHP5
$mail = new Qdmail( 'charset' , 'encoding' );
e.g Korean
$mail = new Qdmail( 'iso-0000-kr' , '7bit' );
recommend
$mail = new Qdmail( 'utf-8' , 'base64' );

sample1 OOP mode

$mail = & new Qdmail();

$mail -> to( 'address@example.com' , 'display_name_by_multibyte' );
$mail -> subject( 'By Multibyte' );
$mail -> text( 'By Multibyte' );
$mail -> from( 'from@example.com' , 'display_name_by_multibyte' );

$mail ->send();

sample2 easy Method

$mail -> easyText(
      array( 'mailto@example.com' , 'display_name_by_multibyte' ),
      'Subject By Multibyte' ,
      'Body By Multibyte',
      array('from@example.com' , 'display_name_by_multibyte' )
 );

qd_send_mail


$attach = array( 'test.jpg' , 'attached_finename_by_Multibyte.jpg');

qd_send_mail(
     'text',
     array('to@address','display_name_by_multibyte'),
     'Subject by Multibyte',
     'Body by Multibyte',
     array('from@address','display_name_by_multibyte'),
     $attach
 );

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

How to use Qdmail - 使い方

  • 日本語以外のマルチバイト対応については、How to use by Multibyte except JPをご覧下さい。(といっても、どこまで対応できているかはわかりません。)
  • 機能の説明については、Qdmail functional design をご覧下さい。

ここはバージョン0系のeasyモードの解説です。


最も簡単な使い方("オブジェクト指向"が「なるべく」少ない方法)

テキストメール
htmlメール
添付ファイル
デコレーションメール(デコメ)
デコレーションメールのHTMLの書き方

詳細な設定ができる使い方("オブジェクト指向"的な方法)

宛先の指定
FROMヘッダーの指定
テキストメール内容の指定
htmlメール内容の指定
デコレーションメールの指定

記事リスト


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

ダウンロードdownload

version

バージョン0系の開発は終了し、現在は、バージョン1系の開発に入っています。今後は1系を推奨します。
バージョン0系の最終バージョンは0.9.4です。0系はメンテナンスモードに入りました。

ご意見、ご不満、動作報告などしていたけると励みになります。

ライセンス(License)

このPHPプログラム Qdmail はオープンソースであり、MIT Liceseでライセンスされています。
(英文)http://www.opensource.org/licenses/mit-license.php
(日本語訳)http://sourceforge.jp/projects/opensource/wiki/licenses%2FMIT_license
(解説)http://ja.wikipedia.org/wiki/MIT_License
(以前はもっと制約の強いAGPLv3でしたが、0.8.3aよりMIT Liceseに変更しました。)

改変、再配布、商用利用は自由に行えます。ライセンスに基づく限り、無料であり、貴方はどこにもお金を支払う必要はありません*1

このライセンスを守るのが難しい方は作者に連絡をとってください。
連絡先は、このサイトのサイドバーにメールアドレスに記載してあります。私は多くのスパムメールを受け取っているので、必ず、E-mailの"subject"には"Qdmail"の言葉を入れて下さい。

*1 : くれるというならいただきます

Qdmailを紹介してください。

絶対条件ではありませんが、使用してみて有用であると感じたら、Qdmailをぜひご紹介ください。インターネット、紙媒体、口コミ、なんでも結構です。そのことが作者にとって、さらにQdmailバージョンアップへの原動力となります。
高機能日本語PHPメール送信ライブラリ Qdmail
http://hal456.net/qdmail/

<a href="http://hal456.net/qdmail/">高機能日本語PHPメール送信ライブラリQdmail</a>

<a href="http://hal456.net/qdmail/">
Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte
</a>

操作の質問

作者は、操作に関する質問はメールでは受け付けていません。質問のある方はサポート&連絡受付でお願いいたします。ただし、作者の都合により、その質問には回答が寄せられないことがあります。

バージョンアップの仕方

バージョンアップは、ファイルを上書きするだけです。
Qdmailは、ファイルが1つだけの構成ですので、バージョンバップも簡単です。

ダウンロード

改版履歴

最新バージョン1系(推奨)

2008-10-21 qdmail.1.2.6b.zip

最新バージョン 0系

2008-08-09 qdmail.0.9.4.002.zip

以前のバージョン1系

2008-10-21 qdmail.1.2.5b.zip
2008-10-21 qdmail.1.2.4b.zip
2008-10-21 qdmail.1.2.3b.zip
2008-10-21 qdmail.1.2.2b.zip
2008-10-20 qdmail.1.2.1b.zip
2008-10-10 qdmail.1.2.0b.zip
2008-10-09 qdmail.1.1.9b.zip
2008-10-04 qdmail.1.1.8b.zip
2008-10-01 qdmail.1.1.7b.zip
2008-09-01 qdmail.1.1.6b.zip
2008-09-30 qdmail.1.1.5b.zip
2008-09-27 qdmail.1.1.4b.zip
2008-09-26 qdmail.1.1.3b.zip
2008-09-11 qdmail.1.1.2b.zip
2008-09-10 qdmail.1.1.1b.zip
2008-09-06 qdmail.1.1.0b.zip
2008-09-03 qdmail.1.0.9b.zip
2008-08-27 qdmail.1.0.8b.zip
2008-08-27 qdmail.1.0.7b.zip
2008-08-27 qdmail.1.0.6b.zip
2008-08-20 qdmail.1.0.5b.zip
2008-08-18 qdmail.1.0.4b.zip
2008-08-13 qdmail.1.0.3b.zip
2008-08-08 qdmail.1.0.2b.zip
2008-08-06 qdmail.1.0.1b.zip
2008-08-02 qdmail.1.0.0b.zip

以前のバージョン0系

2008-08-09 qdmail.0.9.4.001.zip
2008-08-08 qdmail.0.9.4.zip
2008-08-06 qdmail.0.9.3.zip
2008-07-26 qdmail.0.9.2.zip
2008-07-24 qdmail.0.9.1a.zip
2008-07-19 qdmail.0.9.0a.zip
2008-06-25 qdmail.0.8.9a.zip
2008-06-25 qdmail.0.8.8a.zip
2008-06-23 qdmail.0.8.7a.zip
2008-06-18 qdmail.0.8.6a.zip
2008-06-16 qdmail.0.8.5a.zip
2008-06-01-2 qdmail.0.8.4a.zip
2008-06-01 qdmail.0.8.3a.zip
2008-05-27 qdmail.0.8.2a.zip
2008-05-15 qdmail.0.8.1a.zip
2008-05-08 qdmail.0.8.0a.zip
2008-04-28 qdmail.0.7.9a.zip
2008-04-28 qdmail.0.7.8a.zip
2008-04-25 qdmail.0.7.7a.zip
2008-04-24 qdmail.0.7.6a.zip
2008-04-23 qdmail.0.7.5a.zip
2008-04-23 qdmail.0.7.4a.zip
2008-04-21 qdmail.0.7.3a.zip
2008-04-17 qdmail.0.7.2a.zip
2008-04-17 qdmail0.7.1a.zip
2008-04-16 qdmail.0.7.0a.zip

# spok 2008年10月08日(水) 深夜1時31分

nnnnnnさん

せっかくバージョンアップしていただいたのにご不便をおかけし申し訳ありません。たしかに、そのあたりは変更しました。
すいませんが、1.1.9bにバージョンアップしてみてください。
まだエラーはでると思いますが、エラー時にエラーとなったアドレスを表示するようにしました。
そのアドレスが正しいものかどうかご確認のうえ、場合によっては非公開コメントにてご連絡ください。

# spok 2008年10月09日(木) 深夜0時13分

(非公開コメントだったので、こちらに移しました)
# nnnnnn 2008年10月09日(木) 午前11時21分

Fromでメールアドレス以外に送信者名を指定すると起きるようです。
extractAddr関数でメールアドレスのバリデーションのため、
メールアドレスのみを抜き出そうとしているのだと思いますが、
preg_match実行後、正規表現にはマッチしていましたが、
$match[1]は存在しませんでした。

# nnnnnn 2008年10月09日(木) 午前11時27分

extractAddr関数のpreg_matchを変更したら直りました、
変更前 : '/<[^>]+>/'
変更後 : '/<([^>]+)>/'

# spok 2008年10月09日(木) 深夜0時13分


nnnnnnさん

たいへん初歩的なミスで、申し訳ありませんでした。
1.2.0bにて修正しております。ありがとうございました。

# fujiyou 2009年01月28日(水) 午後4時36分

いままで ver 1.1.2b を使っていて、無事送信できていたのですが
ver 1.2.6b に置き換えたところ、

Warning: Wrong parameter count for mb_detect_encoding() in /home/httpd/vhosts/ [ 省略 ] /qdmail.php on line 1341

Warning: mb_strlen(): Unknown encoding "" in /home/httpd/vhosts/ [ 省略 ] /qdmail.php on line 1404

Warning: mb_strlen(): Unknown encoding "" in /home/httpd/vhosts/ [ 省略 ] /qdmail.php on line 2716

といったエラーが多数出てしまい、日本語は ?? になったりで、送信できません。
qdmail.phpを置き換えた以外は改行コードの$LFCのところを変えた以外には特にいじってないのですが・・・

また、このライブラリと直接は関係ないと思うのですが、
複数のユーザー宛にメールアドレスを配列に入れてループで配信するとき、
届くときと、届かないときがあったりします。
関数型を使っているのですが、返り値はtrueでした。

ユーザー側で受信拒否などもしていませんので、原因が分からず凹んでいます・・

# fujiyou 2009年01月31日(土) 午後7時45分

自己解決できました。

DoCoMoにおいて、1行が長かったようです。
タグの切れ目で改行コードを入れるようにしたら無事に届きそうです。

ライブラリ側で自動でこのような処理は行えないのでしょうか?

# kobayasi 2009年09月06日(日) 午後5時47分

qdmail.php内の設定は何も設定しなくて平気なのでしょうか?設定を変更しないと動かないのでしょうか?
ご存知の方がいましたら、お手数をお掛け致しますがご回答を宜しくお願い致します。

# Ito 2010年04月26日(月) 深夜0時07分

qdmail,qdsmtpともに、有り難く使わせて頂いております。
ドキュメントも詳細で解りやすく、素晴らしいです!

PHP5から、参照渡しが標準になり、php5.3からは、&を使うと
Deprecatedエラーが出る様になりました。
表示させなければ問題なく使えますし、&を消すだけなので、
大した問題ではありませんが、
なんとなく全体を把握していないファイルの改変は、
「自分の知らない問題があったら・・・」という不安が無い訳でも無いので、
php5に対応した最新版が公開されると嬉しいなと思います。


#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/04/tb/
  • CakePHPコンポーネントとして Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    ■概要Qdmailは、バージョン0.7.6a(アルファ)から、CakePHPのコンポーネントとしても、動作するようになりました。Semailよりも高機能になりました。■特徴 CakePHP1.1 , 1.2 の両方に対応 同じファイルで、通常の使い方もOK...
  • 2008-09-05 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-05 1.0.9b mb_languageが設定されていない時のデフォルト設定を追加。setMbParameter()メソッドの追加。S/MIME署名対応(署名のみ。暗号化は対応していません。)
  • 2008-09-06 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-05 1.1.0b attachモードの追加修正。array('test.jpg','test2.jpg'...)でも追加できるようにした。attachSimple( $bool = null ...
  • 2008-09-10 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-10 1.1.1b SafeMode時には、mail関数の第5引数を指定しないようにした。MessageIdヘッダーを自動でつけるようにしたDateヘッダーは、ソースのvar $time_zon...
  • 2008-09-11 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-11 1.1.2b resetHeader()メソッドのバグ修正。add_headerのリセット漏れを解消。timeZone()メソッドの追加messageId()メソッドの追加
  • 2008-09-26 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-26 1.1.3b Syfony対応sendmailでの送信を可能にした。 ただし、execの返り値がうまく取得できない環境もあり、その場合は、返り値が信用できない。sendmail()メソッド...
  • 2008-09-14 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-14 1.1.2b messageId()メソッドの改良messageIdRight()メソッドの追加
  • 2008-09-26 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-27 1.1.4b mb_detect_encodingの第3引数にtrue(strict)を指定するようにした。mimeEncodeMax()メソッドの追加debug モード時に、X-Qdma...
  • 2008-09-30 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-30 1.1.5b mimeEncodeの最初の1行につき、75文字制限を守ることができるよう、第4引数追加sendmail送信で、bccにメールが送信されないバグ修正。sendBySendma...
  • 2008-10-01 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-01 1.1.6b CakePHPでのcakeText,cakeHTMLの文字化けの修正CakeRenderメソッドで、target_charsetの指定ミスを修正
  • 2008-10-01 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-01 1.1.7b これまでtoSeparateModeにおいて、cc,bccは削除していたが、そのまま生かすようにした。【覚書】削除していた理由は、easyメソッドやqd_send_mail時...
  • 2008-10-04 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-04 1.1.8b メソッド新設varidateAddressRegex()addressValidationMethod()allowBlankHeader
  • 2008-10-08 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-09 1.1.9b varidateメソッドのエラーメッセージ修正
  • 2008-10-09 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-10 1.2.0b extractAddrで<>形式でアドレス指定した場合にエラーがでるバグを修正Thanks nnnnnnさん!
  • 2008-10-19 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-19 1.2.1b isQmailの判定方法を修正(sendmail_pathだけでなく、execした結果を分析するようにした。)
  • 2008-10-20 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-20 1.2.2b makeDecoTemplate で 添付ファイルが正しく添付されないバグ修正(不等号が逆だった)
  • 2008-10-20 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-21 1.2.3b makeDecoTemplateで添付ファイルがうまく添付されないバグ修正2QdMailReceiverから受け取る添え字がcontent_idからcontent-idに変更...
  • 2008-10-20 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-21 1.2.4b 1.2.3の修正点につき、content_id でも content-id でも認識するようにした。
  • 2008-10-21 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-21 1.2.5b makeDecoTemplateメソッドのCONTNET-IDの振り直し処理の誤り修正(数値の桁の切り方を上下間違えていた)
  • 2008-10-22 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-23 1.2.6b mimeエンコードが特定の文字数だと、最後に空白のエンコードをしてしまうバグ修正(mimeEncodeメソッド)

PHP高機能日本語メール送信ライブラリ・文字化けフリー

Qdmailとは

Qdmailとは、PHPのマルチバイト環境(特に日本語)にて、「文字化けしない」「簡単に"デコメ(デコメール)"やHTMLメール等の電子メールを送信することができる」メールクラスライブラリです。文字化け完全制覇を目指しています。
CakePHPのコンポーネントとしても動作可能です。(1.1.3bより主要5フレームワーク対応。)
「初心者には簡単に、上級者には多彩に」のポリシーのもとに開発しました。送り方が複雑だと例え多機能でも設定が難しく使いこなせないこともありますが、Qdmailは、使いやすさを考えて制作しています。
設定次第では、日本語だけでなく各国語対応ができる(はず)。
PHPには、"mb_send_mail"というメール関数もありますが、残念ながら、機能が限定的です。多くのマルチバイト圏言語の人々は、自国語でメールを送ることに、かなり苦労しているようです。
Pear:Mailもいいのですが、設定項目が多く、「簡単に」ということが難しいと思います。


新バージョンバージョン1.0.0b公開!  最新情報(更新履歴) 相互リンク

(バージョン0系と1系は、パラメータ指定の方法が一部異なりますので、ご注意ください。)

現在、バージョン0系はメンテナンスモードに入り、現在はバージョン1系が順次マイナーバージョンアップ中です。これから新規に使う方には、バージョン1系をオススメします。

私は日本語以外の環境で詳細にテストすることができません。したがって、各国語対応はどこまで現実的に対応しているかは、わかりません。
推奨:スクリプトの最初に
mb_language('ja');//他の言語の場合はその言語
を入れることを推奨します。
Qdmailでは多言語対応のため、指定がない時だけJapanese指定になりますが、事前にlanguageが指定してある場合は、それを引き継ぎます。
使い方については、順次このサイトに掲載していきますが、分量が多いため徐々にアップロードしていく予定です。
(ソフトのダウンロート&利用はできますが、この説明サイトはまだまだ作成途中です)
サポート連絡&感想 バージョン1系の使い方
Qdmail ダウンロード 要注意レンタルサーバー

それでもメールが正常に送付できない、文字化けする場合 トラブルシューティング
重要な更新があります。1.2.6b 以降にバージョンアップしてください。

Qdmailの特徴(機能)Feature

  • PHPの対応バージョン
    • PHP4,PHP5の両方に対応

  • 自動でやってくれること
    • 文字コード判別
    • MIME判定
    • HTMLメール時の代替テキスト文生成機能
    • 様々な指定省略時のデフォルト設定


  • デフォルト設定(変更可能です)
項目設定値
文字コードiso-2022-jp(jis)
エンコード7bitノーマル
自動MIME判定ON
インテリジェントワードラップON(バージョン1系はOFF)
簡易テンプレート機能OFF
宛先分離機能OFF
HTMLメール時の代替テキスト文生成ON
デコメ自動判定ON
  • 今後の課題
    • PGP対応

必要条件

PHP4or5のマルチバイト処理関数が使えること。mb_*関数。

ダウンロード Downlaod

Qdmail Downlaod

記事リスト

  • TB-URL  http://hal456.net/qdmail/01/tb/
  • デコメール(HTMLメール)対応のメール送信ライブラリ『Qdmail』 携帯サイトをつくろう。
    今回はデコメールに対応したメール送信のライブラリ『Qdmail』を紹介したいと思います。 最近ブラウザの仕様は3キャリアで大分と共通化されてきましたが、デコメール(HTMLメール)に関...
  • CodeIgniter + QDmailでOutlookExpressが添付ファイル付メールが文字化け こ~でっくす!!
    ■QdmailとはQdmailとは、PHPのマルチバイト環境(特に日本語)にて、「文字化けしない」「簡単に"デコメ(デコメール)"やHTMLメール等の電子メールを送信することができる」メールクラスライブラリです。文字化け完全制覇を目指し...
  • [CakePHP] メールトリガー設定の方法(メール受信時にプログラムを起動) PHP × Ajax = Cool CMS
    メールトリガー設定とは メール受信をきっかけにプログラムを起動させる設定のこと。 qdmail.php をダウンロードして、app/controllers/components/qdmail.php に配置。 qdmail_receiver.php をダウ...
  • CakePHPのQdmailComponentに気をつけること。 sanojimaru.com
    結構重要なことだと思うので、ちょっと挑発的なタイトルになってしまいました。 akiyan.comのQdmailは使うときだけnewするかvar $is_qmailを変更しよう (特にCakePHPで使う場合)という記事を見て、自分の環境で試したところ性能に...
  • [ PHP ] PHPでメール送信する方法 tekboy
    PHPで問い合わせフォームなどを作る場合など、PHPのプログラムの中からメール送信したいことがある。 PHPではメール送信用の関数 mail() や mb_send_mail() などの標準関数が用意されているが、日本語を使っているとやはり文字化けの問題が...