PHP で添付ファイル付きメールを送信する関数

PHP でメールを送る関数です。
日本語対応で、添付ファイルも送信できます。


準備


マルチバイト文字列関数の mb_language関数を使用します。
CentOS6 では、yum install php-mbstring でパッケージをインストールしておきます。


メール送信関数


SendAttachedMail()
メールを送信します。
添付ファイルも送信できます。
題名、本文、添付ファイル名とも日本語対応です。
メール送信が受け入れられた場合に TRUE 、それ以外の場合に FALSE を返します。

書式:
bool SendAttachedMail( 差出人 , 宛先 , 題名 , 本文 , 添付ファイル名の配列 );



2014/1/7
mb_internal_encoding( 'UTF-8' ); から
mb_internal_encoding( 'ISO-2022-JP' ); に修正

2014/1/31
Subject、添付ファイル名の文字化け回避で
$filename = mb_encode_mimeheader( mb_convert_encoding( basename( $file[ $i ] ) , "ISO-2022-JP" , 'auto' ) );
return mail( $to , mb_encode_mimeheader( mb_convert_encoding( $subject , "ISO-2022-JP" , 'auto' )) , $mbody , $header );
に変更

send_attached_mail.inc




サンプル





$file[0] , $file[1] で指定された箇所にあるファイルをメールに添付します。

参考


日曜プログラミング講座/PHP言語 - WEB要素編 - Water-Sunlight
PHP: mail - Manual

この記事へのコメント

koya
2014年01月30日 10:15
参考になりました。ありがとうございます!
koya
2014年01月30日 11:05
どうしてもsubjectが文字化けしてしまったので
mb_encode_mimeheader( mb_convert_encoding( $subject , "ISO-2022-JP" , 'auto' ))
で送信したらうまくいきました。
2014年01月31日 23:54
ご指摘ありがとうございます。
記事を書いた時と別の環境で試してみると、確かにSubjectが文字化けしていました。
記事の修正をしました。
2014年02月01日 00:11
添付ファイル名が日本語名の場合も文字化けしていましたので、こちらも修正しました。

この記事へのトラックバック