Отправляем письмо с аттачем PHP

Возврат к списку

email-attachment.jpg

Сегодня Atlantweb попросил доработать форму отправки сообщения на почтовый ящик, нужно было добавить возможность аттача изображения. Казалось бы задача 8 класа, но не тут то было, я так привык писать скрипты под Human Emulator - легко и просто, что забыл самого простого. Полазил в сети, мало толкового нашел, часть скриптов не работала. Выкладываю скрипт, который действительно работает и позволяет отправлять письма на почту с аттачем.   

Скрипт:
<?php 

if (isset($_POST['sub'])){ 

/*формируем переменные, которые содержат данные, полученные с html-формы*/ 

$email = "zircool@inbox.ru"; 

$to = "zircool@inbox.ru"; // адрес, куда слать письмо 

// формируем Тему письма 

$subject = "Новый заказ на сайте"; 
$body = "Текст сообщения";

// Конвертируем ее в кодировку KOI8-R 

$subject = convert_cyr_string ($subject,w,k); 

/* А теперь конвертируем ее в MIME-кодировку, заодно указывая, то это KOI8-R */ 

$subject = '=?koi8-r?B?'.base64_encode($subject).'?='; 

// Конвертируем тело письма в KOI8-R 

$msg = convert_cyr_string ($body,w,k); 

if (!empty($_FILES['file_name']['name'])){ 

/* Составляем заголовки – служебную часть письма, где указываем тип кодировки и тип самого письма (plain text, т.е. простой текст) */ 
$un        = strtoupper(uniqid(time())); 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers  .= "Content-Type:multipart/mixed;"; 
$headers .= 'To: '.$to. "\r\n"; 
$headers .= 'From:' .$email. "\r\n"; 
$headers  .= "boundary=\"----------".$un."\"\n\n"; 


    $body   = "------------".$un."\nContent-Type:text/plain;charset=koi8-r\n"; 
    $body   .= "Content-Transfer-Encoding: Quot-Printed\n\n".$msg."\n\n"; 
    foreach($_FILES as $value) 
    { 
    $body   .= "------------".$un."\n"; 
    $body   .= "Content-Type: ".$value['type'].";"; 
    $body   .= "name=\"".basename($value['name'])."\"\n"; 
    $body   .= "Content-Transfer-Encoding:base64\n"; 
    $body   .= "Content-Disposition:attachment;"; 
    $body   .= "filename=\"".basename($value['name'])."\"\n\n"; 
    $body   .= chunk_split(base64_encode(file_get_contents($value['tmp_name'])))."\n"; 
    } 
} 


else{ 

  /* Составляем заголовки – служебную часть письма, где указываем тип кодировки и тип самого письма (plain text, т.е. простой текст) */ 

  $headers = 'MIME-Version: 1.0' . "\r\n"; 

  $headers .= 'Content-type: text/plain; charset=koi8-r' . "\r\n"; 

  $headers .= 'To: '.$to. "\r\n"; 

  $headers .= 'From:' .$email. "\r\n"; 

  $body =$msg; 
} 

// Отправляем письмо 



if (mail($to,$subject, $body, $headers))
{ 
echo "ОК"; 
} 

else 
{ 
echo "Ошибка";
} 


} 
?> 

Постовой: Есть такая компания Хоумворк. Так вот она занимается написание дипломов, курсовых, рефератов. Прежде чем что-нибудь заказывать у них, советую почитать отзывы хоумворк.


Возврат к списку