ようこそゲストさん

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

添付ファイルの指定(OOP)

添付ファイルのOOP的指定方法です。

オブジェクトの生成や他のアドレスの指定は省略します。それらは、基本的な使い方-OOP編をみてください。
Qdmailでは、いくつでもファイルを添付することが出来ます。

簡単な指定方法

$mail -> attach( 'test.jpg' );
ファイル名は、呼びだしもとのスクリプトからの相対パスでしていします。
絶対パスでも指定できます。

例)
/home/hogehoge/images/test.jpg //絶対パス方式
./images/test.jpg //相対パス方式

簡単な指定方法2(日本語ファイル名)

$mail -> attach( array('test.jpg' , '添付ファイル名(日本語OK)' ) );

複数ファイルの指定方法(その1)

現在、この方法は指定できません。
$attachPath = array( 'test.jpg' , 'test2.gif' );
$attachName = array( '添付ファイル名1' , '添付ファイル名2' );

$mail -> attach ( $attachPath , $attachName );

1.1.0bより復活させました。ただし、制限事項があります。
$attachPath = array( 'test.jpg' , 'test2.gif' );
$mail -> attach ( $attachPath , $attachName );
この方式で添付ファイル名は指定できません。

この指定ができるのは、インラインモードtrue or シンプルアタッチモードtrueの時だけです。
インラインモードは、
$mail ->inlineMode(true);
ただし、qd_send_mailでデコメ送信時は自動的にインラインモードになります。

シンプルアタッチモードは、
$mail->simpleAttach(true);
です。

シンプルアタッチモード、インラインモードであっても、他の指定方法を併用できます。
ただし、 $attach = array( filename , attach_name );だけは併用できませんので、その場合は、$attach = array( array(filename , attach_name) );と入れ子にしてください。

複数ファイルの指定方法(その2)

$attach[] = array( 'test.jpg' , '添付ファイル名1' );
$attach[] = array( 'test2.gif' , '添付ファイル名2' );

$mail -> attach ( $attach );

複雑な添付ファイルの指定方法(MIMEタイプとContent-IDを独自指定)

$attach = array(
    'PATH' => 'test.jpg' ,
    'NAME' => '添付ファイル名1',
    'CONTENT-TYPE'=>'anything/mimetype',
    'CONTENT-ID'=>'image_0001',
 );

$mail -> attach ( $attach );

# あきよし 2008年10月16日(木) 午後4時46分

CONTEN-ID の独自指定方法、現状ライブラリ(ver 1.2.0b) と食い違うように思います。(以前はわかりませんが…)

説明にある CONTENT_ID ではなく、CONTENT-ID としなくてはうまくいきません。
MIME_TYPE も CONTENT-TYPE が正しいようです。

また、inline mode の場合(deco メール送信時含む)、attach($attach) ではなく、
attach(array($attach)) と、array の入れ子をひとつ多くしなくては駄目でした。

とりあえず、deco メール送信で自分がハマッたので、管理人さんがマニュアル整備するまでの「つなぎ」程度に情報を書かせてもらいました。

# spok 2008年10月18日(土) 午後1時20分

あきよし さん

ご指摘ありがとうございました。CONTENT-ID,CONTENT-TYPEにつきまして、マニュアルを修正いたしました。

# han 2011年06月25日(土) 午後6時16分

動的に生成した文字列を ファイルとしてサーバに保存することなく添付ファイルとして(任意のファイル名を指定して)送信することはできないのでしょうか?

動的な文字列がHTMLなので HTMLで送信していますが 添付の方が都合が良い(ブラウザで開きやすい・一通で複数のHTMLファイルを送れる)ですし 文字列内に個人情報があるのでサーバに保存はしたく無いと言う思いがあります

おそらく仕様外なのだとは思いますが 念のため…と思い質問させていただきました


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