Skip to content

Instantly share code, notes, and snippets.

@LogIN-
Created October 4, 2014 11:12
Show Gist options
  • Select an option

  • Save LogIN-/3e3c9d78f65e602f5524 to your computer and use it in GitHub Desktop.

Select an option

Save LogIN-/3e3c9d78f65e602f5524 to your computer and use it in GitHub Desktop.
PHP send email with attachment
<?php
/*====================================*/
/*=== Send email with attachment ====*/
/*====================================*/
function mail_attachment($to, $subject, $message, $from, $file, $reply_to) {
// $file should include path and filename
$filename = basename($file);
$file_size = filesize($file);
$content = chunk_split(base64_encode(file_get_contents($file)));
$uid = md5(uniqid(time()));
$from = str_replace(array("\r", "\n"), '', $from); // to prevent email injection
$header = "From: ".$from."\r\n"
."Reply-To: ".$reply_to."\r\n"
."MIME-Version: 1.0\r\n"
."Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"
."This is a multi-part message in MIME format.\r\n"
."--".$uid."\r\n"
."Content-type:text/html; charset=iso-8859-1\r\n"
."Content-Transfer-Encoding: 7bit\r\n\r\n"
.$message."\r\n\r\n"
."--".$uid."\r\n"
."Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"
."Content-Transfer-Encoding: base64\r\n"
."Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"
.$content."\r\n\r\n"
."--".$uid."--";
return mail($to, $subject, $message, $header);
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment