Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> mail, форматирование сообщения 
:(
    Опции темы
Dr.Death
  Дата 7.4.2004, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 950
Регистрация: 15.7.2003
Где: Волгоград

Репутация: нет
Всего: 1



Как мне отправить сообщение с форматированием, допустим жирный текст, наклонный, таблицы. Пробовал в виде html - Outlook мне его так и отображает.


--------------------
Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер
PM MAIL WWW ICQ   Вверх
Secandr
Дата 7.4.2004, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Я спросил у яндекса неделю назад:
Код
$header = "Content-Type: text/html; charset=windows-1251\n";
$email = "[email protected]";
$tema = "Заявка на подключение";
$send="<html>****";
mail($email, $tema, $send, $header);



--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
ida
Дата 7.4.2004, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


замужем
****


Профиль
Группа: Завсегдатай
Сообщений: 2277
Регистрация: 14.5.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 58



И что, действительно работает?.... Сам пробовал?
PM WWW   Вверх
Secandr
Дата 8.4.2004, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



ida Комерческий отдел не жаловался.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
arial
  Дата 8.4.2004, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Вот писал с пол-года назад:
Код
<?php

class Mail
{
   // Конфигурационные переменные:
   
   // Отправитель сообщения.
   // Некоторые хостеры требуют наличия адреса отправителя сообщения.
   // Если Ваш хостер допускает отсутствие этого заголовка,
   // параметр можно упустить.
   //
   // @var string

   var $from;

   // Получатель сообщения.
   //
   // @var string

   var $to;

   // Тема сообщения.
   //
   // @var string

   var $subject;

   // Текст сообщения.
   //
   // @var string

   var $body;
   
   // Эта переменная разрешает или запрещает автоматическое определение
   // html - контента в теле сообщения.
   // По умолчанию включена.
   //
   // @var bool

   var $html_auto = true;

   // Эта переменная работает только при отключенной переменной $html_auto
   // Она позволяет вручную выбрать тип контента в теле сообщения.
   // Если переменная включена, тело сообщения будет передаваться в виде
   // html, если отключена - в виде plain text.
   // По умолчанию отключена.
   //
   // @var bool

   var $html = false;

   // Кодировка текста отправляемого сообщения.
   // Разрешены кодировки:
   // windows-1251
   // koi8-r
   // iso8859-5
   // x-cp866
   // x-mac-cyrillic    
   // По умолчанию используется кодировка koi8-r
   //
   // @var string

   var $cp = 'koi8-r';

   // Эта переменная разрешает или запрещает автоматическое определение
   // кодировки исходного текста сообщения.
   // По умолчанию включена.
   //
   // @var bool

   var $cp_auto = true;

   // Эта переменная работает только при отключенной переменной $cp_auto
   // Она позволяет вручную выбрать кодировку исходного текста сообщения.
   // Разрешены кодировки:
   // windows-1251
   // koi8-r
   // iso8859-5
   // x-cp866
   // x-mac-cyrillic    
   // По умолчанию используется кодировка windows-1251
   //
   // @var string

   var $cp_in;

   // Конец конфигурационных переменных.
   
   // Символ перевода строки в зависимости от операционной системмы.

   var $nl;

   // Переменная несет в себе массив присоединенных файлов.

   var $parts = Array();

   // Переменная несет в себе массив заголовков сообщения,
   // добавленных из вне.

   var $headers = Array();

   function Mail()
   {
       strstr(PHP_OS, 'WIN') ? $this->nl = "\r\n" : $this->nl = "\n";
   }

   // Метод предназначен для добавления файла к сообщению.
   //
   // bool add_attachment(string filename, [string type])

   function add_attachment($file)
   {
       if (file_exists($file)) {
           $file_name = basename($file);
           if (function_exists('mime_content_type')) {
               $ctype = mime_content_type($file);
           } else {
               $pathinfo = pathinfo($file);
               $mime = Array(
                           'rar'  => 'application/x-tar',
                           'zip'  => 'application/x-zip-compressed',
                           'asf'  => 'video/x-ms-asf',
                           'wmv'  => 'video/x-ms-wmv',
                           'aiff' => 'audio/aiff',
                           'au'   => 'audio/basic',
                           'mid'  => 'audio/mid',
                           'mp3'  => 'audio/mpeg',
                           'wav'  => 'audio/wav',
                           'wma'  => 'audio/x-ms-wma',
                           'avi'  => 'video/x-msvideo',
                           'ivf'  => 'video/x-ivf',
                           'mpeg' => 'video/mpeg',
                           'mpg'  => 'video/mpeg',
                           'mpe'  => 'video/mpeg',
                           'qt'   => 'video/quicktime',
                           'mov'  => 'video/quicktime',
                           'art'  => 'image/x-jg',
                           'bmp'  => 'image/bmp',
                           'gif'  => 'image/gif',
                           'jpg'  => 'image/jpg',
                           'swf'  => 'application/futuresplash',
                           'tiff' => 'image/tiff',
                           'pdf'  => 'application/pdf',
                           'html' => 'text/html',
                           'htm'  => 'text/html',
                           'xls'  => 'application/x-msexcel',
                           'doc'  => 'application/msword',
                           'rtf'  => 'application/msword',
                           'rtx'  => 'text/richtext',
                           'xml'  => 'text/xml',
                           'hta'  => 'application/hta',
                           'css'  => 'text/css',
                           'txt'  => 'text/plain'
                            );
               isset($mime[$pathinfo['extension']]) ? $ctype = $mime[$pathinfo['extension']] : $ctype = 'application/octet - stream';
           }
           $fopen = fopen($file, 'r');
           $attachment = fread($fopen, filesize($file));
           fclose($fopen);
           $this->parts[] = Array  
                            (
                               'name'       => $file_name,
                               'attachment' => $attachment,
                               'ctype'      => $ctype,
                            );
           return 0;
       } else {
           return 1;
       }
   }

   // Метод предназначен для добавления заголовка к сообщению.
   //
   // void add_header(string str)

   function add_header($header)
   {
       $this->headers[] = trim($header);
   }
   
   function detect_cyr_charset($str)
   {
       $charsets = Array(
                       'k' => 0,
                       'w' => 0,
                       'd' => 0,
                       'i' => 0,
                       'm' => 0
                        );

       for ($i = 0, $length = strlen($str); $i < $length; $i++) {
           $char = ord($str[$i]);
           //non-russian characters
           if ($char < 128 || $char > 256) continue;
           //cp866
           if (($char > 159 && $char < 176) || ($char > 223 && $char < 242)) $charsets['d'] += 3;
           if (($char > 127 && $char < 160)) $charsets['d'] += 1;
           //koi8-r
           if (($char > 191 && $char < 223)) $charsets['k'] += 3;
           if (($char > 222 && $char < 256)) $charsets['k'] += 1;
           //win-1251
           if ($char > 223 && $char < 256) $charsets['w'] += 3;
           if ($char > 191 && $char < 224) $charsets['w'] += 1;
           //mac
           if ($char > 221 && $char < 255) $charsets['m'] += 3;
           if ($char > 127 && $char < 160) $charsets['m'] += 1;
           //iso-8859-5
           if ($char > 207 && $char < 240) $charsets['i'] += 3;
           if ($char > 175 && $char < 208) $charsets['i'] += 1;
       }

       arsort($charsets);
       return key($charsets);
   }

   function cp_convert()
   {
       $cp_array = Array(
                       'windows-1251'   => 'w',
                       'koi8-r'         => 'k',
                       'iso8859-5'      => 'i',
                       'x-cp866'        => 'a',
                       'x-mac-cyrillic' => 'm'
                        );

       if ($this->cp_auto == true) {
           $from = $this->detect_cyr_charset($this->body);
       } else {
           isset($cp_array[$this->cp_in]) ? $from = $cp_array[$this->cp_in] : $from = 'w';
       }

       isset($cp_array[$this->cp]) ? $to = $cp_array[$this->cp] : $to = 'k';

       $this->subject = convert_cyr_string($this->subject, $from, $to);
       $this->body    = convert_cyr_string($this->body   , $from, $to);
   }

   function build_part($part)
   {
       $attachment  = chunk_split(base64_encode($part['attachment']));
       $encoding = 'base64';
       return 'Content-Type: ' . $part['ctype'] . ($part['attachment'] ? '; name = "' . $part['name'] . '"' : '') . $this->nl . 'Content-Transfer-Encoding: ' . $encoding . $this->nl . $this->nl . $attachment . $this->nl;
   }

   function build_multipart()
   {
       $boundary  = 'b' . md5(uniqid(time()));
       $multipart = 'Content-Type: multipart/mixed; boundary = ' . $boundary . $this->nl . $this->nl . 'This is a MIME encoded message.' . $this->nl . $this->nl . '--' . $boundary . $this->nl;
       $multipart .= 'Content-Type: text/';
       if ($this->html_auto == true) {
           $pattern = "%</?\w+(\s[^>]*)?>%is";
           preg_match($pattern, $this->body) == true ? $multipart .= 'html' : $multipart .= 'plain';
       } else {
           $this->html == true ? $multipart .= 'html' : $multipart .= 'plain';
       }
       $multipart .= '; charset=' . $this->cp . $this->nl . 'Content-Transfer-Encoding: 8bit' . $this->nl . $this->nl . $this->body . $this->nl . $this->nl . '--' . $boundary;
       $i = 0;
       $count = sizeof($this->parts);
       while ($i < $count) {
           $multipart .= $this->nl . $this->build_part($this->parts[$i]).
           '--' . $boundary;
           $i++;
       }
       return $multipart .= '--' . $this->nl;
   }

   function send()
   {
       $this->cp_convert();
       $headers = '';
       empty($this->from) or $headers .= 'From: ' . $this->from . $this->nl;
       $i = 0;
       $count = sizeof($this->headers);
       while ($i < $count) {
           $headers .= $this->headers[$i] . $this->nl;
           $i++;
       }
       $headers .= 'MIME-Version: 1.0' . $this->nl;
       $headers .= $this->build_multipart();
       return mail($this->to, $this->subject, '', $headers);
   }
}

/* Пример использования:

$mail = new Mail;
$mail->from      = '[email protected]';
$mail->to        = '[email protected]';
$mail->subject   = 'Тестовое сообщение';
$mail->body      = '<center><b>Привет!</b><br />Вот изображение 1: <img src="1.gif" /> и изображение 2: <img src="2.gif" /></center>';

$mail->add_header('X-Priority: 2');
$mail->add_attachment('1.gif');
$mail->add_attachment('2.gif');

$mail->send();
*/
?>
Или вот в архиве:

Присоединённый файл ( Кол-во скачиваний: 51 )
Присоединённый файл  mail.class.zip


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Wowa
Дата 9.4.2004, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



в нашем ФАКе по ПХП есть подобный класс от Сереги
PM WWW   Вверх
IZ@TOP
Дата 9.4.2004, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Если ни у кого возражений нет, я закрываю тему.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.