ПРОГРАММ: 654 | СТАТЕЙ: 125 | КОДОВ: 3434   

    главная        новости        программы        библиотека        коды        рейтинг       форум   

Афоризм
Принцип оптимиста завтра будет лучше, чем послезавтра.
 
Поиск


 
Рассылка
| Soft-Ежедневник - обзор программ прямо к Вам на e-mail
 
 
Полезное!
 
7 лучших
  Плиты дорожные, ЖБИ
  Фильм "Инвалиды России", прошлое и настоящее
  Компания Чистомир - клининговые услуги
  Детская обувь Бегунок
  Канцтвары и доски для маркеров с доставкой.
  
  
 
  Библиотека > web - разработка > PHPдобавить статью
Отправка писем с вложениями на PHP

Итак, далее представлен класс, который с легкостью позволяет прикреплять файлы к письму...
 
Владислав Путяк
docs.com.ru
16-05-2004
Версия для печати
печать

Итак, из статьи Своя рассылка на PHP Вы уже узнали не только как можно отправлять письма с помощью PHP, но и как организовать простую рассылку своими силами.

С момента выхода той статьи, я получил немало отзывов и вопросов. В основном людей интересовало можно ли с помощью PHP отправлять письма с атачментами (вложениями).

Ну что ж, эта краткая статья и послужит ответом. Итак, далее представлен класс, который с легкостью позволяет прикреплять файлы к письму.


class mime_mail {
var $parts;
var $to;
var $from;
var $headers;
var $subject;
var $body;

// создаем класс
function mime_mail() {
 $this->parts = array();
 $this->to =  "";
 $this->from =  "";
 $this->subject =  "";
 $this->body =  "";
 $this->headers =  "";
}

// как раз сама функция добавления файлов в мыло
function add_attachment($message, $name = "", $ctype = "application/octet-stream") {
 $this->parts [] = array (
  "ctype" => $ctype,
  "message" => $message,
  "encode" => $encode,
  "name" => $name
 );
}

// Построение сообщения (multipart)
function build_message($part) {
 $message = $part["message"];
 $message = chunk_split(base64_encode($message));
 $encoding = "base64";
 return "Content-Type: ".$part["ctype"].($part["name"]? "; name = "".$part["name"].""" : "")." Content-Transfer-Encoding: $encoding $message ";
}

function build_multipart() {
 $boundary = "b".md5(uniqid(time()));
 $multipart = "Content-Type: multipart/mixed; boundary = $boundary This is a MIME encoded message. --$boundary";
 for($i = sizeof($this->parts)-1; $i>=0; $i--) $multipart .= " ".$this->build_message($this->parts[$i]). "--$boundary";
 return $multipart.=  "-- ";
}

// Посылка сообщения, последняя вызываемая функция класса
function send() {
 $mime = "";
 if (!empty($this->from)) $mime .= "From: ".$this->from. " ";
 if (!empty($this->headers)) $mime .= $this->headers. " ";
 if (!empty($this->body)) $this->add_attachment($this->body, "", "text/plain");  
 $mime .= "MIME-Version: 1.0 ".$this->build_multipart();
 mail($this->to, $this->subject, "", $mime);
}
}

Вот и все, привожу пример использования класа:

$attachment = fread(fopen("file.zip", "r"), filesize("file.zip"));
$mail = new mime_mail();
$mail->from = "my@e-mail.com";
$mail->headers = "Errors-To: [EMAIL=my@e-mail.com]my@e-mail.com[/EMAIL]";
$mail->to = "user@e-mail.com";
$mail->subject = "PHP atachment";
$mail->body = "Get your file!";
$mail->add_attachment("$attachment", "file.zip", "Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAgEASABIAAD/7QT+UGhvdG9zaG");
$mail->send();

Третий параметр в add_attachment передает заголовок типа файла, например, для картинки будет "image/jpeg"

Вот, собственно и все, как видите, ничего сложного. Будут вопросы - задавайте.


Комментарии
Оставить комментарий

Еиырул | 16-11-10 03:40
А исходники можно выложить для скачивания. А вопросы как нужно задавать.


Кирилл | 05-04-10 15:01
А исходники можно выложить для скачивания.


Санёк | 11-08-08 01:18
Надо писать вместо русского текста каракулями


Вика | 27-12-04 18:59
а как сделать что бы русский текст в письме отображался, а то каракули приходят?

Имя:
E-mail:
Сообщение:


Число=
укажите сумму чисел на картинке

   очистить

популярные статьи по теменовые статьи
Создание видео из фотографий в программе "ФотоШОУ"
Разное / Обработка фото и видео
Больница для компьютера
железо / Система
Чем так популярны социальные сети?
Разное / разное
Синхронизация данных с сотового телефона на ПК
железо / Мобильные устройства
Куплю хостинг
web - разработка / Хостинг

Опрос
На что Вы обращаете внимание в первую очередь при покупке товара в интернет-магазине?  
 
Комментарии и оценку пользователей
Наличие нескольких фотографий
Подробное и качественное описание
Условия доставки
Возможность покупки в кредит
 
Самое свежее  
 ПРОГРАММЫ

ICQ 8.0.5990
ICQ 8.0.5990

Mozilla Firefox 18.0.2
Mozilla Firefox 18.0.2

ArtMoney 7.40.4
ArtMoney 7.40.4

 НОВОСТИ

Хакерская атака на Google из Китая
Хакерская атака на Google из Китая

Мы победили! Олимпиада 2014 пройдет в Сочи
Мы победили! Олимпиада 2014 пройдет в Сочи

 БИБЛИОТЕКА

Создание видео из фотографий в программе "ФотоШОУ"
Создание видео из фотографий в программе "ФотоШОУ"

Больница для компьютера

 
Рекомендую!



Copyright © 2004-2020 MostInfo.net  | связь с админом
При использовании материалов сайта ссылка на MostInfo обязательна.