簡単HTMLメール

2008/04/16 未分類 spok

htmlメール

ここで説明するのは、画像をインターネットに置いておくタイプのHTMLメールです。
HTML内に表示する画像もいっしょに送るタイプは、「インラインHTMLメール」といい、別項にて説明します。デコメは、インラインHTMLメールであり、日本の携帯端末向けのデコレーションメールは、別に説明します。
require_once('qdmail.php');
$mail = & new Qdmail();*1

$mail -> easyHtml(
      'mailto@example.com' ,
      '宛先(日本語OK)' ,
      'タイトル(日本語OK)' ,
      '本文(日本語OK)',
      'from@example.com' ,
      '配信元(日本語OK)'
 );
Htmlの部分が変わった以外は、簡単テキストメールの送り方と全く同じです。
添付ファイルやその他のヘッダーの設定の仕方も同じです。
もちろん、'本文(日本語OK)'の部分には、htmlで内容を書かなくてはなりません。
Qdmailでは、htmlメールを解析することができないメーラーや、ポリシーとしてhtmlメールを読まない方にも、内容だけは届くように、htmlメールから、代替テキストを自動的に生成して、メールに添えています。
このオプションは変更することもできます。

HTMLメールの例

ここでは、簡単なhtmlメールの内容の例を書いておきます。
$body = '<html><body bgcolor="#aabbff"><h1>HTMLメールテスト</h1><b>太字</b><font color="red">文字色を変えてみます。</font><p>Send by Qdmail</p><div><a href="mailto:address@example.com">メールはこちらへ</a></div></body></html>';
$mail -> easyHtml(
      'address@example.com' ,
      '宛先(日本語OK)' ,
      'タイトル(日本語OK)' ,
      $body,
      'from@example.com' ,
      '配信元(日本語OK)'
 );
このHTMLは古い書き方ですが、わかりやすいのであえて、古い方法で書きました。

*1 : PHP5では、"&"は必要ありません。

簡単な使い方-テキストメール

2008/04/16 未分類 spok

単純なテキストメール

推奨文字コード

Qdmailは、ソースコードや渡された文字コードを自動的に判別し、もっとも文字化けの少ない方法で送るように試みます。
しかし、インターネットメールの環境は様々であり、自動判別は完璧なものではありません。
もっとも文字化けが出る可能性が低いのは、当方の開発環境と同じ以下の環境です。
スクリプトの文字コード:UTF-8で統一。
スクリプトの改行コード:CRLF
デフォルトでは、Qdmailは、このUTF-8を日本語のメールに適したiso-2022-jpに変換して送ります。
もちろん、EUC-JP,SHIFT-JISでも、改行コードLFのみでも大丈夫なようには設計してあります。

一番簡単なメール

インクルードできるパスの通ったところに、qdmail.phpを配置してください。
わからなければ、呼び出すファイルと同じディレクトリ(フォルダ)で構わないです。
require_once('qdmail.php');
$mail = & new Qdmail();
$mail -> easyText(
      'mailto@example.com' ,
      '宛先(日本語OK)' ,
      'タイトル(日本語OK)' ,
      '本文(日本語OK)',
      'from@example.com' ,
      '配信元(日本語OK)'
 );
(PHP5の時は、new 前の "&" は必要ありません。)

オブジェクト指向(OOP)的な書き方がわからない方は、-> や new の意味がわからないかも知れませんが、おまじないと思って、上記をコピー&ペーストしてみてください。
「$mail -> 関数名()」で、ひとつの関数と思って構いません。
なお、「$mail -> & new Qdmail();*1」は、最初に一回だけやっておけば、それ以降は必要ありません。
「$mail」は、自分の好きな変数名にして構いません。以後は、その「newした変数名->関数名」に置き換えて下さい。

添付ファイルを添付する

添付ファイルの置き場所:まずは、呼びだしもとのファイルと同じ場所において試してみて下さい。このファイルの置き場所は変更することもできます。
$mail = & new Qdmail();();*1
$mail -> easyText(
       'mailto@example.com' ,
       '宛先(日本語OK)' ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       'from@example.com' ,
       '配信元(日本語OK)' , 
       'test.jpg',
       '添付された時のファイル名(日本語OK).jpg'
 );
なお、添付ファイルの置き場所は、呼びだしもとファイルからの相対パスでも、絶対パスでも指定できます。
例えば、
相対パス「./images/test.jpg」「images/test.jpg」
絶対パス「/home/hogehoge/images/test.jpg」「c:\htdocs\hogehoge\test.jpg」
最初の文字が「/」「¥」「\」の場合は、絶対パスとして解釈しますので注意してください。

複数のファイルを添付する。

これ以降は、$mail = & new Qdmail(); は省略します。

$param[] = array( 'test.jpg' , '添付ファイル名(日本語OK省略も可能).jpg' );
$param[] = array( 'test2.jpg' , '添付ファイル名2(日本語OK省略も可能).jpg' );

$mail -> easyText(
       'mailto@example.com' ,
       '宛先(日本語OK)' ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       'from@example.com' ,
       '配信元(日本語OK)' , 
       $param
 );

複数の宛先に送付する (メールアドレスのみ指定)

バージョン0.7.8aより指定方法が変わる予定ですので、注意してください。
$to = array('mailto1@example.com' , 'mailto2@example.com' );
$mail -> easyText(
        $to ,
        'address' ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       'from@example.com' ,
       '配信元(日本語OK)'  
 );
$mail -> easyText の第2引数が null になっていることに注意しましょう。バージョン0.7.8aより指定方法が変わる予定ですので、注意してください。
この例では、2人に送っていますが、何人でも追加できます。
toヘッダに複数指定した場合は、その指定された人全員が、全員のメールアドレスを知ることになりますので注意しましょう。
それがまずい場合(ネットサービスでは、ほとんどがそうですよね)は、後で述べるBCCを使いましょう。

複数の宛先に送付する (表示名も指定 パート1)

$to = array('mailto1@example.com' , 'mailto2@example.com' );
$toname = array('表示名1(日本語OK)','表示名2(日本語OK)');

$mail -> easyText(
        $to ,
        $toname ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       'from@example.com' ,
       '配信元(日本語OK)'  
 );
メールアドレスと表示名の配列の対応関係が崩れないように注意しましょう。

複数の宛先に送付する (表示名も指定 パート2)


$to[] = array('mailto1@example.com' , '表示名1(日本語OK)' );
$to[] = array('mailto2@example.com' , '表示名2(日本語OK)' );

$mail -> easyText(
        $to ,
        null ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       'from@example.com' ,
       '配信元(日本語OK)'  
 );
必ず、メールアドレスのキーがゼロ、表示名のキーが1になるようにします。
$mail -> easyText の第2引数が null になっていることに注意しましょう。

cc や bcc も追加する。

表示名も指定 パート2 の応用です。

$address['to'][] = array('mailto1@example.com' , '表示名1(日本語OK)' );
$address['to'][] = array('mailto2@example.com' , '表示名2(日本語OK)' );

$address['cc'][] = array('mailto3@example.com' , '表示名3(日本語OK)' );
$address['cc'][] = array('mailto4@example.com' , '表示名4(日本語OK)' );

$address['bcc'][] = array('mailto5@example.com' );
$address['bcc'][] = array('mailto6@example.com' );

$mail -> easyText(
        $address ,
        null ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       'from@example.com' ,
       '配信元(日本語OK)'  
 );
※bccでは、表示名の指定は意味がありませんので、指定できません。

$address は、3次元配列になります。混乱しないように注意しましょう。
toやccは大文字でも小文字でも問題ありません。
ccやbccは省略可能ですが、toには最低1つの宛先が必要になりますので、注意して下さい。
$mail -> easyText の第2引数が null になっていることに注意しましょう。

reply-toを設定する

WEBサービスでは、Fromは配信専用にして、reply-toを設定したい場合もあるでしょう。

$var['from'] = array('mailto2@example.com' , '表示名2(日本語OK)');
$var['reply-to'] = array('mailto3@example.com' , '表示名3(日本語OK)');

$mail -> easyText(
       'address1@example.com' ,
       '宛先(日本語OK)' ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       $var  
 );

複数の宛先&replt-to&複数添付ファイル

$address['to'][] = array('mailto1@example.com' , '表示名1(日本語OK)' );
$address['to'][] = array('mailto2@example.com' , '表示名2(日本語OK)' );

$address['cc'][] = array('mailto3@example.com' , '表示名3(日本語OK)' );
$address['cc'][] = array('mailto4@example.com' , '表示名4(日本語OK)' );

$address['bcc'][] = array('mailto5@example.com' );
$address['bcc'][] = array('mailto6@example.com' );

$var['from'] = array('address7@example.com' , '表示名7(日本語OK)');
$var['reply-to'] = array('address8@example.com' , '表示名8(日本語OK)');

$attach[] = array( 'test.jpg' , '添付ファイル名(日本語OK省略も可能).jpg' );
$attach[] = array( 'test2.jpg' , '添付ファイル名2(日本語OK省略も可能).jpg' );


$mail -> easyText(
       $address ,
       null ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       $var,
       null ,
       $attach
 );
総復習です。
$mail -> easyText の引数の順番と null にしなければならない部分があるので、注意しましょう。

*1 : PHP5の時は、new 前の "&" は必要ありません。

How to use by Multibyte except JP-Qdmail

2008/04/15 未分類 spok
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
 );

How to use Qdmail - 使い方

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

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


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

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

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

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

ダウンロードdownload

2008/04/15 未分類 spok

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