ファイルを添付してメール送信
- PHP
-
2008-03-15 - 更新:2020-10-19
この記事は最終更新日から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);
//}
この記事がお役に立ちましたらシェアお願いします
1,758 views




