カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

ファイルを添付してメール送信

この記事は最終更新日から1年以上経過しています。

PHPのmail関数でファイルを添付してメールを送信するスクリプト 

//===========================================
// 設定
//===========================================
//{
   $filename = ファイル名;
   $name     = @explode("/", $filename);
   $name     = $name[count($name) - 1];
   $from     = "example@mail.co.jp";
   $to       = "example@mail.co.jp";
//}

//===========================================
// メール送信実行
//===========================================
//{
   $subject = "=?ISO-2022-JP?B?".base64_encode("メール件名")."?=";

   $boundary = md5(uniqid(rand())); //バウンダリー文字(パートの境界)

   $upfile_type = "multipart/mixed";

   $header  = "From: $from\n";
   $header .= "Reply-To: $from\n";
   $header .= "X-Mailer: PHP/".phpversion()."\n";
   $header .= "MIME-version: 1.0\n";
   $header .= "Content-Type: multipart/mixed;\n";
   $header .= "\tboundary=\"$boundary\"\n";

   $msg = "";
   $msg .= "This is a multi-part message in MIME format.\n\n";
   $msg .= "--$boundary\n";
   $msg .= "Content-Type: text/plain; charset=iso-2022-jp\n";
   $msg .= "Content-Transfer-Encoding: 7bit\n\n";
   if(file_exists($filename))
   {
      $fp = fopen($filename, "r") or die("error"); //ファイルの読み込み
      $contents = fread($fp, filesize($filename));
      fclose($fp);
      $f_encoded = chunk_split(base64_encode($contents)); //エンコードして分割

      $msg .= "\n\n--$boundary\n";
      $msg .= "Content-Type: " . $upfile_type . ";\n";
      $msg .= "\tname=\"$name\"\n";
      $msg .= "Content-Transfer-Encoding: base64\n";
      $msg .= "Content-Disposition: attachment;\n";
      $msg .= "\tfilename=\"$name\"\n\n";
      $msg .= "$f_encoded\n";
      $msg .= "--$boundary--";
   }

   //ファイル添付に対応
   mail($to, $subject, $msg, $header);
//}

この記事がお役に立ちましたらシェアお願いします

485 views

コメントは受け付けていません。