Отправляем письмо с аттачем 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 "Ошибка";
} 


} 
?> 

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


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

Теги
1c addurl AutoGRAPH.NET_Service Bitrix Bootstrap chmail.ru CMS curl DLE ERP Exel gmail google hdd hide html input Java script окна javascript Jquery JS JSON keywords mail.ru memori news.list No captcha nsma PHP php php attach PR recaptcha repair retweet script Sdorgen sdorgen select sms snagit Spam Test Twitter ucoz utf-8 VK wrike X-Satellite XHE xhe yandex yandex webmaster youtube АРМ БП3 Битрикс ВТБ24 ЕГРЮЛ ЖЖ ЗУП ИТС КЛАДР МБ-8 НДФЛ ПР ПФ ТИЦ УАТ УП автограф автокликер автоматизация автопостер ап ТИЦ битрикс валюты видео внешнее соединение время грамотное написание графика даты запрета день рождение дерево значений договор заказы заполнение ТЧ запонение ТЧ запрос 1С зарплатный реестр календарь книги кодировка комментарии координаты координирование проектов меню модальное окно народ обмен обработка ок рубль организационные структуры управления проектами остатки на складе отчет плавающий блок постинг программы для управления проектами расчет расстояния сервис система управления проектами скрипт скрыть блок смс софт таймер такси управление содержанием проекта фоновые задания чекер