Создание класса My_Mime_Mail
Мы можем расширить имеющийся класс My_Mail с тем, чтобы он обрабатывал сообщения MIME. Мы дополнительно определим пару новых методов, которые добавляют заголовки MIME и строят части тела, а также, как обычно, заменим метод send():
<?php
// my_mime_mail_class.php include("./my_mail_class.php");
class My extends
{
Свойства
Значением поля заголовка Content-Type для текстовых данных по умолчанию
устанавливается "text/plain; charset=us-ascii":
var $type = 'text/plain'; var $charset = 'us-ascil':; :
Для заголовка Content-Transfer-Encoding также устанавливается значение по умолчанию:
var ^encoding = '7pit';
Нам потребуется флаг, указывающий, есть ли в сообщении вложения:
var $has_attach = 0;
Файлы, которые должны быть вложены, указываются в элементах массива $ files. Массив $ files имеет два измерения; при этом каждый элемент содержит ассоциативный массив, хранящий информацию о файле. Например, в следующем фрагменте кода извлекается информация о первом файле в массиве:
$file1 = $files[0]["file"]; // path of the file $filenamei = $files[0]["filename"]; // name of the file $filesize1 = $files[0]t"filesize"]; // size of the file $filetypel = $files[0]["filetype"]; // type of the file
С помощью этого массива можно вложить в сообщение электронной почты требуемое количество массивов:
var $fiies = array();
По умолчанию вкладываемые файлы имеют тип содержимого application/ octet-st ream. Можно создать файл для хранения расширений хорошо известных типов файлов и устанавливать тип содержимого в зависимости от расширения:
var $mime_type = 'application/octet-stream';
Значение поля заголовка MIME-Version и предупреждение для несовместимых почтовых клиентов определяются так:
var =
var $mime_msg = "This is a multi-part message in MIME format.";
Мы воспользуемся дополнительным полем заголовка "X-Mailer": var Smaller = 'My Mime Mailer 1.0';
Переменная для хранения разграничителя частей:
var $boundary = Еще одно специальное сообщение об ошибке:
var $ERR_CANNOT_OPEN_FILE = 'Cannot open the specified file!';
buildMimeHeaders()
Этот метод создает заголовки MIME в дополнение к обычным. Если в сообщении есть вложения, создается разграничитель для обозначения каждой части тела, а поле заголовка Content-Type получает значение "multipart/mixed":
function
{
$this->headers[] = "X-Mailer: " . $this->mailer; $this->headers[] = $this->mime_version; if ($this->has_attach) {