Автор Тема: Mail в формате HTML  (Прочитано 4536 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Mail в формате HTML
« : 20 Июня 2002, 13:29:45 »
Привет всем,
не совсем уверен, что этот вопрос именно сюда, но пишу php-скрипт, поэтому решил в этот форум написать.
Вопрос такой, как можно отослать мэил, содержащий не простой текст, а HTML,
а ещё конкретнее, есть форма, юзер заполняет и нажимает отосталь. Ко мне приходит полная копия заполненной страницы. Но это уже не самое важное, хотелось вы узнать, как мэил в HTML-формате отправить, содержание уже самому сгенерировать можно.
Большое спасибо.

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Mail в формате HTML
« Ответ #1 : 20 Июня 2002, 13:42:35 »

<?php
mail
(trim($param["mail"]),"Post.lt",$mt,"From: [email]null@post.lt[/email]\\nMIME-Version: 1.0\\nContent-Type: text/html; charset=windows-1257\'");
?>
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Mail в формате HTML
« Ответ #2 : 20 Июня 2002, 16:32:07 »
Всё понятно, спасибо!

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
Mail в формате HTML
« Ответ #3 : 22 Июня 2002, 23:38:50 »
попробуй пришить ето. С ним можно всякие задачи решить на своем сайте.


<?

// store as "mime_mail.inc"

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

   
   function 
mime_mail() {
      
$this->parts = array();
      
$this->to =  "";
      
$this->bcc"";
	
  
$this->from =  "";
      
$this->subject =  "";
      
$this->body =  "";
      
$this->headers =  "";
   }

   
/*
    *     void add_attachment(string message, [string name], [string ctype])
    *     Add an attachment to the mail object
    */

   
function add_attachment($message$name =  ""$ctype "application/octet-stream") {
      
$this->parts[] = array (
            
"ctype" => $ctype,
            
"message" => $message,
            
"encode" => $encode,
            
"name" => $name
                           
);
   }

   
   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"].
         "
\\"" :  "").

         
"\\nContent-Transfer-Encoding: $encoding\\n\\n$message\\n";
   }

  
   function 
build_multipart() {
      
$boundary =  "b".md5(uniqid(time()));
      
$multipart =
         
"Content-Type: multipart/mixed; boundary = $boundary\\n\\nThis is a MIME encoded message.\\n\\n--$boundary";

         for(
$i sizeof($this->parts)-1$i >= 0$i--)
      {
         
$multipart .=  "\\n".$this->build_message($this->parts[$i]).
            
"--$boundary";
      }
      return 
$multipart.=  "--\\n";
   }

  
   function 
get_mail($complete true) {
      
$mime =  "";
      if (!empty(
$this->from))
         
$mime .=  "From: ".$this->from"\\n";
      if (!empty(
$this->headers))
         
$mime .= $this->headers"\\n";
        
/* if (!empty($this->to)) {
            $mime .= "To: $this->to\\n";
         }*/
         
if (!empty($this->bcc)) {
            
$mime .= "Bcc: $this->bcc\\n";
         }
	
	
 if (!empty(
$this->subject)) {
            
$mime .= "Subject: $this->subject\\n";
         }
          if (!empty(
$this->body))
         
$this->add_attachment($this->body,  "",  "text/plain");
      
$mime .=  "MIME-Version: 1.0\\n".$this->build_multipart();
      return 
$mime;
   }

   
//      Send the mail (last class-function to be called)
  
function send() {
      
$mime $this->get_mail(false);
      if (
mail($this->to$this->subject,  ""$mime)){
	
  return 
1;
	
  }
   }
}  
// end of class
?>



чтоб отправить письмо:

$mail 
= new mime_mail;
$content_type="text/html;";
$mail->from    "vasya@reink.ru";
$mail->to      "ko@lya.ru";
$mail->bcc "";
$mail->subject "";
$mail->body    "";
$mail->add_attachment($fbody""$content_type);
if(
$mail->send()){
echo 
"Сообщено отправлено";
}
else
{
die(
"Произошла ошибка");
}

 содержимое своей формы $fbody шлешь как атачмент,  а $content_type="text/html;";
« Последнее редактирование: 01 Февраля 2003, 01:34:03 от Covex »

Оффлайн Angel07

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.host-inform.ru/
Mail в формате HTML
« Ответ #4 : 11 Июня 2007, 19:25:05 »
Уважаемые господа!

Такой очень животрепещущий вопрос: можно ли с помощью класса mime_mail отослать HTML-письмо с кодированием (content-transfer-encoding) не base64, а, скажем, quoted-printable? И если можно, то как?

Некоторые антиспамы типа SpamAssasin добавляют дополнительные очки к спам-рейтингу за то, что письмо закодировано в base64 :-( Наш провайдер добавляет 1,9 (!) при "проходном" балле в спам - 5.0.

Заранее огромное спасибо.
---
С уважением, Angel07

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Mail в формате HTML
« Ответ #5 : 13 Июня 2007, 17:22:57 »
http://pear.php.net/manual/en/package.mail.mail-mime.get.php
параметры text_encoding, html_encoding  = quoted-printable
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28