▼ ダウンロードQdSimpleMail-PHP
■ライセンス(License)
このPHPプログラム Qdmail はオープンソースであり、MIT Liceseでライセンスされています。http://www.opensource.org/licenses/mit-license.php
改変、再配布、商用利用は自由に行えます。ライセンスに基づく限り、無料であり、貴方はどこにもお金を支払う必要はありません*1。
このライセンスを守るのが難しい方は作者に連絡をとってください。
連絡先は、プロフィールに記載してあります。私は多くのスパムメールを受け取っているので、必ず、E-mailの"subject"には"Qdmail"の言葉を入れて下さい。
作者は、操作に関する質問はメールでは受け付けていません。質問のある方はこのサイトの適当な記事にコメントをつけることで行って下さい。ただし、作者の都合により、その質問には回答が寄せられないことがあります。
*1 : くれるというならいただきます
▼ コメント(0件)
- TB-URL http://www.hal456.net/qd_simple_mail/04/tb/
▼ 本文の改行について
- TB-URL http://www.hal456.net/qd_simple_mail/07/tb/
▼ トラブルシューティング
■本文が消えてしまう。携帯でうまく受信できない。
改行コードの変更
QdSipleMailでは、RFCに従い、ヘッダーの改行コードをCRLFとしています。しかし、sendmailではないメール送信サーバー、特にqmailを使用している場合、改行コードがCRLFではなくLFのみでないと誤動作することがあるようです。
自動認識を装備していますが、当該自動認識がうまく働かない場合もあるかと思います。
その場合は、強制的に改行コードをLFのみにするように変更してみてください。
改行コードをLFのみにする方法
オプションで、LFを指定してください。$option = array('LF'=>true);
QdSimpleMailリファレンス
ユーザー入力文字コードの変更
QdSimpleMailでは、ユーザーから入力される文字コードはmb_detect_encoding関数にて自動判別します。しかし、入力文字数が少ない時などは、その自動判別に失敗する時があります。
その場合は、オプションにて、入力される文字コードを明示的に指定することで文字化けを押さえられる場合があります。
例えばutf-8で入力している場合には、以下のようにしてみてください。
$option = array('CHARSET_ORG'=>'UTF-8');
QdSimpleMailリファレンス
- TB-URL http://www.hal456.net/qd_simple_mail/06/tb/
▼ リファレンス
■関数リファレンス
使い方の例はこちらqd_simple_mail( 宛先アドレス , 宛先日本語名 , 件名 , 本文 , フロムアドレス , フロム日本語*1 , 追加ヘッダー*1 , オプション*1 ,MTAオプション*1)
追加ヘッダーの指定方法
追加ヘッダーは、array( 'ヘッダー名'=>'値' )値が、メールアドレスであり、かつ、名前もつけたい場合は、以下のようにする
array('cc'=>array('cc@example.com','○○さん'))
オプションの指定方法
array('オプション名'=>'値')オプションの種類
| オプション名 | 値 | 意味 |
| CHARSET_HEADER | 文字コード | ヘッダーの文字コード指定*2 |
| CHARSET_CONTENT | 文字コード | 本文の文字コード指定*2 |
| CHARSET_ORG | 文字コード | ユーザー入力の文字コード指定*3 |
| ENC_CONTENT | 7bit,8bit,base64 | 本文のエンコード指定*4 |
| LF | - | ヘッダーの改行コードをLFにする*5 |
| CRLF | - | ヘッダーの改行コードをCRLFにする*5 |
QdSimpleMailに渡す文字コード
QdSimpleMailに渡す文字コードは、自動判別するため、特に意識する必要がありません。明示的にコードを指定する場合は、文字コードの明示的指定をご覧下さい。
- TB-URL http://www.hal456.net/qd_simple_mail/02/tb/
-
▼
トラブルシューティング
QdSimpleMail ■本文が消えてしまう。携帯でうまく受信できない。改行コードの変更QdSipleMailでは、RFCに従い、ヘッダーの改行コードをCRLFとしています。しかし、sendmailではないメール送信サーバー、特にqmailを使用している場合、改行コードがCRLF...
▼ 使い方(Howto)
■使い方 HOW TO
関数リファレンスはこちらもっとも単純なメール
使う前に、qd_simple_mail.phpをインクルードしてください。
include('qd_simple_mail.php');
$to = 'to@example.com';
$to_name = '○○さん';
$subject = 'お問い合わせの件';
$from = 'from@example.com';
$content = 'メールの本文';
qd_simple_mail( $to , $to_name , $subject , $content , $from );
フロムにも、マルチバイトの名前を付ける。
$to = 'to@example.com'; $to_name = '○○さん'; $subject = 'お問い合わせの件'; $from = 'from@example.com'; $from_name = '××事務局'; $content = 'メールの本文'; qd_simple_mail( $to , $to_name , $subject , $content , $from ,$from_name);
cc,bcc,reply-toを加える
ccには、日本語名を加え、bccにはメールアドレスだけの例
$to = 'to@example.com';
$to_name = '○○さん';
$subject = 'お問い合わせの件';
$from = 'from@example.com';
$content = 'メールの本文';
$additional = array(
'Cc'=>array('cc@example.com','▲▲さん'),
'Bcc'=>'bcc@example.com',
'Reply-to'=>'reply@example.com',
);
qd_simple_mail( $to , $to_name , $subject , $content , $from , null ,$additional );
さらに 本文をutf-8 & base64エンコード
$to = 'to@example.com';
$to_name = '○○さん';
$subject = 'お問い合わせの件';
$from = 'from@example.com';
$content = 'メールの本文';
$additional = array(
'Cc'=>array('cc@example.com','▲▲さん'),
'Bcc'=>'bcc@example.com',
'Reply-to'=>'reply@example.com',
);
$option = array(
'CHARSET_CONTENT'=>'utf-8',
'ENC_CONTENT'=>'base64',
);
qd_simple_mail( $to , $to_name , $subject , $content , $from , null ,$additional , $option );
- TB-URL http://www.hal456.net/qd_simple_mail/03/tb/
▼ PHPで日本語メール送信
■QdSimpleMailとは
QdSimpleMailとは、PHPのmb_send_mailをさらに使いやすく、文字化けの少ない日本語メールを送信することのできるユーザー関数です。mb_send_mailは、ヘッダーで日本語を使用する際の制限があり、例えば、fromに送信者の名前を入れるのはちょっと工夫しなければなりません。
しかし、QdSimpleMailは、入力されたマルチバイト文字の文字コードを自動判別し、適切な文字コードに置き換えて、MIMEエンコードするため、文字化けリスクは相当低くなっています。
テキストメールのみの対応ですが、軽い動作で、文字化けしない日本語メールを送信することができます。
使い方/リファレンス/ダウンロード
qd_simple_mail( 'to@eaxmaple' , ・・・・・)というmb_send_mail()ライクな簡単メール関数です。
特徴
- PHP4,5対応
- Qdmailがベースなので、文字化け防止に関して高信頼性
- 日本語メールのスタンダード、iso-2022-jpがデフォルト
- 軽い(300行以内のソースコード) Qdmailの10分の1
- ファイル1つの簡単構成
- ユーザーがmb_conver_encodingする必要がありません。
- qd_simple_mail() という簡単関数型。mb_send_mailライクです。
- cc,bcc,reply-toなど任意の追加ヘッダーを設定可能
- utf-8可能
- 本文BASE64エンコード可能
- 自由に使えるMITライセンス
- 内部でmb_send_mailは呼び出さず、mail関数を呼びだし
制限
- テキストメールのみ可能(HTMLメールは送信できません)
- toは1カ所のみ。複数の宛先には対応していません。
- cc,bccはそれぞれ1宛先のみ。
- ワードラップ(自動折り返し)機能なし。(改行は自分で)
- SMTP送信は未対応
- 添付ファイル未対応
- windows環境の場合、toヘッダに日本語が使えない場合があり得ます。参考-PHPマニュアルmail(mail関数の制限です。)
環境
- mb_*関数が使える環境であること
- mail関数が使える環境であること
備考
HTMLメールも、添付ファイルも工夫すれば送信することもできますが、それならば、高機能日本語メールライブラリQdmailを使ったほうがいいと思います。- TB-URL http://www.hal456.net/qd_simple_mail/01/tb/