PHPで添付ファイル付きメール送信 | 3流プログラマーのひとりごと

3流プログラマーのひとりごと

ブログの説明を入力します。

添付ファイル付きのメール送信処理実装メモ


参考サイト(というかそのまんま)

http://techblog.ecstudio.jp/tech-tips/mail-japanese-advance.html


1. 以下の二つをダウンロードする

PHPMailer_5.2.1

jphpmailer


2. PHPMailerを解凍する

$ tar zxvf PHPMailer_5.2.1.tgz


3. フォルダ名をリネーム

$ mv PHPMailer_5.2.1 phpmailer


4. ライブラリを配置

src

 |- phpmailer

 |- jphpmailer.php

 |- mail.php ←コレ作る



ソースは以下


<?php

require_once './jphpmailer.php';

class Mail {

   /**
    * 添付ファイル付きでメール送信
    * 本文の文字コードはEUC-JPで

    * @param mail_address 送信先メールアドレス
    * @param subject 件名
    * @param body 本文テキストのパス
    * @param attachfile 添付ファイルのパス
    */

    public static function sendMail($mail_address, $subject, $body, $attachfile = null) {

      // 言語設定
      mb_language("japanese");
      // 内部エンコーディング
      mb_internal_encoding("EUC-JP");
      // インスタンス生成
      $mail = new JPHPMailer();
      // 宛先を設定
      $mail->addTo($mail_address);
      // 差出人と差出人名を設定
      $mail->setFrom('mirsa@redeyes.co.jp' , 'mirsa');
      // 件名を設定
      $mail->setSubject($subject);
      // 本文を設定

      if (file_exists($body)) {
        $mail->setBody(file_get_contents($body));

      }
      //添付ファイル追加

      if (isset($attachfile) && file_exists($attachfile)) {
        $mail->addAttachment($attachfile);
      }

      // メール送信
      if (!$mail->send()){

        // エラー処理

        throw new Exception($mail->getErrorMessage());
      }

    }

  }

?>