Отправка писем с аттачем на PHP

Отправка писем с вложениями на PHP функцией mail() на самом деле не так сложна как кажется.  Давайте посмотрим следующий код c комментариями:

$from = "info@oksan4ik.ru"; // От кого
$to = "you@mail.ru"; // Кому
$filename = "certificates/image.jpg"; // Путь к файлу, который отправляем
 $subj = 'Интригующее письмо'; // Тема сообщения
 $text = 'Привет с сайта oksan4ik.ru'; // Тело сообщения
 $f = fopen($filename,"rb"); // Открываем и читаем бинарно файл $filename
$un = strtoupper(uniqid(time()));
$head = "From: $fromn"; // Создаем заголовки нашего письма
$head .= "To: $to ";
$head .= "Subject: $subj ";
$head .= "X-Mailer: PHPMail Tool "; //далее идут пикантные моменты
$head .= "Reply-To: $from ";
$head .= "Mime-Version: 1.0 ";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary="----------".$un."" ";
$zag = "------------".$un." Content-Type:text/html; ";
$zag .= "Content-Transfer-Encoding: 8bit $text ";
$zag .= "------------".$un." ";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name="".basename($filename)."" ";
$zag .= "Content-Transfer-Encoding:base64 ";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename="".basename($filename)."" ";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))." "; // Кодируем строку
// в base64, деля файл на небольшие «куски» функцией "chunk_split"

mail("$to", "$subj", $zag, $head); // Посылаем письмо функцией mail()

Готово! не страшно? Вот и мне показалось,  что все легко и понятно. Надеюсь, будет полезно.

Скрипт легкий для понимания и его можно прикрутить к любому движку на php. Если возникли вопросы или трудности, пишите.

 

  • Aemeth Lvx

    Parse error: syntax error, unexpected T_DEC in C:Program FilesBitrix Environmenthostsdevbitrixtemplates.defaultexcel.php on line 71