Forum Webscript.Ru

Программирование => PHP => Тема начата: Evgeny от 20 Июня 2002, 13:29:45

Название: Mail в формате HTML
Отправлено: Evgeny от 20 Июня 2002, 13:29:45
Привет всем,
не совсем уверен, что этот вопрос именно сюда, но пишу php-скрипт, поэтому решил в этот форум написать.
Вопрос такой, как можно отослать мэил, содержащий не простой текст, а HTML,
а ещё конкретнее, есть форма, юзер заполняет и нажимает отосталь. Ко мне приходит полная копия заполненной страницы. Но это уже не самое важное, хотелось вы узнать, как мэил в HTML-формате отправить, содержание уже самому сгенерировать можно.
Большое спасибо.
Название: Mail в формате HTML
Отправлено: Stek от 20 Июня 2002, 13:42:35

mail(trim($param["mail"]),"Post.lt",$mt,"From: [email]null@post.lt[/email]\\nMIME-Version: 1.0\\nContent-Type: text/html; charset=windows-1257\'");
?>
Название: Mail в формате HTML
Отправлено: Evgeny от 20 Июня 2002, 16:32:07
Всё понятно, спасибо!
Название: Mail в формате HTML
Отправлено: Covex от 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;";
Название: Mail в формате HTML
Отправлено: Angel07 от 11 Июня 2007, 19:25:05
Уважаемые господа!

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

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

Заранее огромное спасибо.
Название: Mail в формате HTML
Отправлено: Макс от 13 Июня 2007, 17:22:57
http://pear.php.net/manual/en/package.mail.mail-mime.get.php
параметры text_encoding, html_encoding  = quoted-printable