▼ 基本的な使い方-OOP編
■ $mail -> send() 型
簡単Qdmailのオブジェクト指向的送り方です。OOPではない指定の仕方もありますが、出来る限りOOP方式をお薦めします。
文字コードは、Qdmailが自動判別します。
基本的な送り方( text メール)
$mail = & new Qdmail(); $mail -> to( 'address@example.com' , '宛先日本語名' ); $mail -> subject( 'タイトルも日本語で' ); $mail -> text( 'ここに内容をいれます' ); $mail -> from( 'from@example.com' , '配信元日本語名' ); $mail ->send();文字コードは、Qdmailが自動判別し、デフォルトでもっとも文字化けが起こりにくいiso-2022-jpで送ります。
「日本語名」は省略できます。
PHP5では、newの前の & は必要ありません。
cc,bcc,reply-to
cc,bcc,reply-toは次のように指定します。$mail -> cc( 'address2@example.com' , '宛先cc日本語名' ); $mail -> bcc( 'address3@example.com' ); $mail -> replyto( 'address4@example.com' , '返信先replyto日本語名' );※bccでは、宛先表示名は意味がありませんので、指定できません。
この場合、reply-toは、ハイフンを抜いてreplytoで指定しますので、気をつけて下さい。
複数宛先の指定方法その1
$to = array( 'address1@example.com','address2@example.com','address3@example.com' ); $toName = array( '宛先1の日本語名','宛先2の日本語名','宛先3の日本語名' ); $mail -> to( $to , $toName );cc,bccも同様です。from,reply-toは、ひとつしか設定できません。
複数宛先の指定方法その2
$to[] = array( 'address1@example.com' , '宛先1の日本語名' ); $to[] = array( 'address2@example.com' , '宛先2の日本語名' ); $to[] = array( 'address3@example.com' , '宛先3の日本語名' ); $mail -> to( $to );cc,bccも同様です。from,reply-toは、ひとつしか設定できません。
複数宛先の指定方法その3
$to[] = array( 'address1@example.com' , '宛先1の日本語名' );
$to[] = array( 'address2@example.com' , '宛先2の日本語名' );
$to[] = array( 'address3@example.com' , '宛先3の日本語名' );
foreach( $to as $addr_and_name ){
$mail -> to( $addr_and_name , null , true );
}
point
$mail -> to()の第3引数を true にするのがポイントです。この第2引数は、これまでに設定されていたメールアドレスに「追加するか、上書きするか」を指定しています。
$mail -> to()の第3引数 | |
追加 | true |
上書き | false |
htmlメール
$mail ->text('内容');の代わりに$mail ->html('htmlメールの内容を入れます。');とするだけです。
Qbmailのデフォルトでは、自動的に代替テキストが作成されます。
これでhtmlメールを読むことができないメーラでも、内容を読むことができるようになります。
例えば、原則としてテキストメールしか読めない*1秀丸メールや、携帯メールなどに送るときに有効でしょう。
この自動テキスト生成機能は、OFFにすることもできます。
$mail->send();の前に
$mail -> autoBoth(false);としてください。
*1 : そのようなポリシーのメーラー
記事リスト
- 個別アドレス分離機能(一斉送信時) (2008-04-20)
- smtp用メールデータのみを取得する (2008-08-13)
- メールデータサイズを知る (2008-08-13)
- 任意のヘッダーの追加 (2008-06-28)
- インテリジェント・ワードラップ (2008-04-20)
- デコメの送り方(OOP) (2008-04-18)
- 添付ファイルの指定(OOP) (2008-04-17)
- TB-URL http://hal456.net/qdmail/08/tb/
-
▼
添付ファイルの指定
Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte 添付ファイルのOOP的指定方法です。オブジェクトの生成や他のアドレスの指定は省略します。それらは、基本的な使い方-OOP編をみてください。Qdmailでは、いくつでもファイルを添付することが出来ます。簡単な指定方法$mail -> attach( '...
-
▼
デコメの送り方(OOP)
Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte ■デコレーションメール日本での携帯端末向けの機能です。(ver0.7.2a以降)デコメは、ここで紹介する以外に、簡単デコメ機能(easyDeco)を利用することもできます。 ひとつの宛先にデコメを送付する$mail = & new Qdmail()...
# K Fan 2008年05月02日(金) 深夜3時39分
はじめまして。
メールの文字化け対策に悩んでいたところ、発見しまして使用させていただきました。
一点だけ間違いを発見しました。
このページの基本的な送り方の
$mail = & new Qdmai();
new Qdmailのlが抜けています。
# spok 2008年05月07日(水) 深夜1時41分
K Fanさん
ご指摘ありがとうございます。
まさに基本的な部分でタイポしまして申し訳ありません。
修正しておきました。
バージョンアップもしましたので、ぜひご利用ください。(0.8.0a)
# LG23 2008年11月13日(木) 午前9時38分
はじめまして。
メール送信を簡単にしてくれるのでいつも使わせていただいてます (^^)
一つ困ってしまったことがあるのですが、cakePHPで使用する際、
$Qdmail->ccや$Qdmail->bccとして指定したcc、bccのクリアは
どのようにしたらよろしいのでしょうか?
$Qdmail->cc('')としてもバリデートエラーが返ってきてしまいます。
教えていただけたら幸いです。
# spok 2008年11月13日(木) 午後8時38分
こちらをご参照ください。
http://hal456.net/qdmail/reset
# custar 2008年12月20日(土) 午前11時30分
function subject() で設定したサブジェクトの文字列は、
下記 (2)-(4) において、$this->subject['CONTENT'] に格納されます。
引数をもたずに呼び出される subject() の返り値は、(1) において、
$this->subject が返されています。
しかし、期待される subject() の返り値は、$this->subject['CONTENT']
ではないでしょうか?
そうであれば (1) は、
return $this->subject['CONTENT'];
が宜しいと思いますが、いかがでしょうか?
function subject($subj = null)
{
if (is_null($subj))
{
return $this->subject; ................................. (1)
}
if (is_string( $subj ) || is_numeric( $subj ))
{
$this->subject['CONTENT'] = (string) $subj; ............ (2)
return ...
}
elseif (is_array($subj))
{
$subj = array_change_key_case( $subj , CASE_UPPER );
if (isset($subj['CONTENT']))
{
$this->subject = $subj; .............................. (3)
}
else
{
$this->subject['CONTENT'] = (string) $subj[0]; ....... (4)
...
}
return ...
}
else
{
return ...
}
}
# spok 2008年12月20日(土) 午後10時27分
ご指摘ありがとうございます。検討させていただきます。
# tkm 2013年04月09日(火) 午後5時08分
はじめまして。
下記の件で悩んでおります。
「複数宛先の指定方法その2」の方法で宛先、CCを指定しています。
toは大丈夫なのですが、
ccは、初めの1件目しか送信されません。
(アドレスを変更しても同様です。)
なにかお気づきの点などありましたらご指摘、ご教授お願いいたします。
以下記述-----------------------------------------
$to[] = array($toAddress1,$toName1);
$to[] = array($toAddress2,$toName2);
$cc[] = array($ccAddress1,$ccName1);
$cc[] = array($ccAddress2,$ccName2);
require_once('/qdmail.php');
$mail = new Qdmail( 'UTF-8' , 'base64' );
$mail -> errorDisplay( false );
$mail -> to( $to );
$mail -> cc( $cc );
$mail -> subject($subject);
$mail -> text( $body );
$mail -> from($userAddress,$username);
$mail ->send();
-------------------------------------------------
//Qdmail ver 1.2.6b