Русская документация для фриланесеров
Главная arrow PHP arrow Письмо в виде HTML  
21.11.2008 г.
Главное меню
Главная
Поиск
PHP
.NET
Java
Ruby
C++
Delphi
Другие языки
Базы данных
Безопасность
Сети
ОС
Мобильные
Теория дизайна
WEB
Разное
Админцентр



мебель red apple. бюро переводов южная. Продвижение сайтов без затрат. Vergleich von Baufinanzierung fuer Ihr Traumhaus. разработка сайтов

Письмо в виде HTML Печать E-mail
Автор Westry   
14.10.2007 г.
Как послать письмо в HTML виде? Присоедините к письму аттач с названием message.html и письмо превратиться в HTML-письмо!

headers=$headers;
}

function add_html($html="") {
Как послать письмо в HTML виде? Присоедините к письму аттач с названием message.html и письмо превратиться в HTML-письмо!

headers=$headers;
}

function add_html($html="") {
$this->html.=$html;
}

function build_html($orig_boundary,$kod) {
$this->multipart.="--$orig_boundary\n";
if ($kod=='w' || $kod=='win' || $kod=='windows-1251') $kod='windows-1251';
else $kod='koi8-r';
$this->multipart.="Content-Type: text/html; charset=$kod\n";
$this->multipart.="BCC: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script ";
$this->multipart.="Content-Transfer-Encoding: Quot-Printed\n\n";
$this->multipart.="$this->html\n\n";
}


function add_attachment($path="", $name = "", $c_type="application/octet-stream") {
if (!file_exists($path.$name)) {
print "File $path.$name dosn't exist.";
return;
}
$fp=fopen($path.$name,"r");
if (!$fp) {
print "File $path.$name coudn't be read.";
return;
}
$file=fread($fp, filesize($path.$name));
fclose($fp);
$this->parts[]=array("body"=>$file, "name"=>$name,"c_type"=>$c_type);
}


function build_part($i) {
$message_part="";
$message_part.="Content-Type: ".$this->parts[$i]["c_type"];
if ($this->parts[$i]["name"]!="")
$message_part.="; name = \"".$this->parts[$i]["name"]."\"\n";
else
$message_part.="\n";
$message_part.="Content-Transfer-Encoding: base64\n";
$message_part.="Content-Disposition: attachment; filename = \"".
$this->parts[$i]["name"]."\"\n\n";
$message_part.=chunk_split(base64_encode($this->parts[$i]["body"]))."\n";
return $message_part;
}


function build_message($kod) {
$boundary="=_".md5(uniqid(time()));
$this->headers.="MIME-Version: 1.0\n";
$this->headers.="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$this->multipart="";
$this->multipart.="This is a MIME encoded message.\n\n";
$this->build_html($boundary,$kod);
for ($i=(count($this->parts)-1); $i>=0; $i--)
$this->multipart.="--$boundary\n".$this->build_part($i);
$this->mime = "$this->multipart--$boundary--\n";
}


function send($server, $to, $from, $subject="", $headers="") {

$headers="To: $to\nFrom: $from\nSubject: $subject\nX-Mailer: The Mouse!\n$headers";
$fp = fsockopen($server, 25, &$errno, &$errstr, 30);
if (!$fp)
die("Server $server. Connection failed: $errno, $errstr");
fputs($fp,"HELO $server\n");
fputs($fp,"MAIL FROM: $from\n");
fputs($fp,"RCPT TO: $to\n");
fputs($fp,"DATA\n");
fputs($fp,$this->headers);
if (strlen($headers))
fputs($fp,"$headers\n");
fputs($fp,$this->mime);
fputs($fp,"\n.\nQUIT\n");
while(!feof($fp))
$resp.=fgets($fp,1024);
fclose($fp);
}
}


// *************************************************************************
//
// В качестве аттача пpисоединяем html-письмо (открывается автоматически).
// Второй аттач - некоторый файл из каталога.
// Вот так вызывать все то, что написано выше:
//
// *************************************************************************


$mail=new html_mime_mail();
$mail->add_html("

Пpивет!

".
"
Посылаю двоичный файл [/bin/ls] ...".
"

");
$mail->add_attachment("/bin/","ls");
$mail->build_message('win'); // если не "win", то кодиpовка koi8
$mail->send('ПОЧТОВЫЙ_ХОСТ_ВАШЕГО_ПРОВАЙДЕРА',
'КОМУ_(E-MAIL)',
'ОТ_КОГО_(E-MAIL)',
'ТЕМА ПИСЬМА');

//
// После прихода письма качаем по ФТП оригинальный /bin/ls и сравниваем с
// импортированным из письма:
//
// X:\temp>fc /b ls ls2
// Сравнение файлов ls и LS2
// FC: различия не найдены
//
//
// Внимание! Если у вас нет файла /bin/ls, то просто закомментируйте строку
// $mail->add_attachment("/bin/","ls"), чтобы программа не пыталась присоединить
// к письму неcуществующие файлы.
//


?>

>

Комментаpии по пpосьбам тpудящихся. Будут добавляться до тех поp, пока всем все не станет понятно.
> ...объяснить поподробнее, то что написано
> на http://php.spb.ru/php/mail.html.
> Т.е. я не понял, вся та информация, она
> располагается все на одной странице или то,....

Пpогpамма состоит из 2х частей.
необходимые функции
как написать письмо с аттачем. Аттач -- это HTML-письмо, содеpжащее слово "пpивет"
> И второе: ("

пpивет


> ") - это есть само тело послание,
> которое придет на mail ???

Да, это и есть аттач. Их может быть несколько.
> .. но у меня возникли кое-какие еще вопросы:
> "почтовый хост" - в этом случае прописывается тот адрес, где
> реально находиться почтовый ящик (т.е. в большинстве
> случаев у провайдера) или нет

Нет. Этот параметр не имеет никакого отношения к каким-либо почтовым ящикам... Если вы не можете запонить это поле, то не занимайтесь программированием вообще.
Открываем свою почтовую программу (для тех, кто не понял: Outlook, Thebat или др)
Смотрим, что указано в поле "исходящий (SMTP) сервер"
Пишем в параметре "ХОСТ" эти данные (без угловых скобок)

Пример: smtp.peterlink.ru (если я являюсь клиентом Петерлинка, что дает мне право пользоваться сервером почты). Любой человек как-то пишет письма в Инет. Это "как-то" он делает через почтовый сервер своего провайдера.
> "кому" - ???
> "от кого" - ???
> "тема" - ???

Нет, пожалуй эти поля комментировать не будем... Хотя:
Кому - пример: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
От кого - пример (от меня): Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
Тема - пример: ...

Нет, все же лучше не комментировать...
© Antonio
из фоpума phpclub.net ;-)
Последнее обновление ( 02.12.2007 г. )
 
« Пред.
Webdesign by Webmedie.dk Webdesign by Webmedie.dk