トップページ >  PHP >  PHPでメール送信する
初版2009/08/21: 最終更新日2012/12/18
mb_send_mail
目次
mb_send_mailとは
mail
PHPMailerでファイル添付してメール送信
mb_send_mailとは
mb_send_mailとはsendmailでメールを送信する関数です。
第一引数は宛先です。
mb_send_mailの戻り値は、成功すればTRUE、失敗すればFALSEのようですが、php5.1.6の環境で試すと成功した場合にFALSEが返ってきています。
mail
mb_send_mailはmail関数へパイプしているだけです。
PHPMailerでファイル添付してメール送信
PHPMailerというライブラリがあります。phpのバージョンにあわせてこちらからダウンロードしてください。
ライブラリはダウンロードして解答したのをWebサーバに配置するだけです。ドキュメントルート外に配置します。
プログラム内でrequire_onceしますが、環境に合わせて場所を変更してください。

<?php
require_once("./phpmailer/class.phpmailer.php");      //ライブラリ読み込み
mb_language("japanese");           //言語(日本語)
mb_internal_encoding("UTF-8");     //内部エンコーディング(UTF-8)

$to = "hogehoge@example.com";      //宛先
$subject = "メールの件名";         //件名
$body = "メールの本文です。";      //本文
$from = "foo@example.com";         //差出人
$fromname = "ほげほげ 太郎";      //差し出し人名
$attachfile = "./abcd.xls";        //添付ファイルパス

$mail = new PHPMailer();           //PHPMailerのインスタンス生成
$mail->CharSet = "iso-2022-jp";    //文字コード設定
$mail->Encoding = "7bit";          //エンコーディング
//宛先(To)をセット
$mail->AddAddress($to);
//差出人(From)をセット
$mail->From = $from;
//差出人(From名)をセット
$mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,"JIS","UTF-8"));
//件名(Subject)をセット
$mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8"));
//本文(Body)をセット
$mail->Body  = mb_convert_encoding($body,"JIS","UTF-8");
//添付ファイルをセット
$mail->AddAttachment(mb_convert_encoding($attachfile,"JIS","UTF-8"));

//メールを送信
if (!$mail->Send()){
    echo("Failed to send mail. Error:".$mail->ErrorInfo);
}else{
    echo("Send mail OK.");
}
?>

php.iniを以下の通りにします。

mbstring.language = Japanese 
mbstring.internal_encoding = UTF-8 

添付ファイルが日本語ファイルであっても文字化けしないようにしています。
参考URLはこちらです。