Автор Тема: mime_mail - растолкуйте смысл строки  (Прочитано 2803 раз)

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

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
mime_mail - растолкуйте смысл строки
« : 08 Апреля 2002, 01:02:26 »
Есть класс :


// store as "mime_mail.inc"

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

   /*
    *     void mime_mail()
    *     class constructor
    */

   function mime_mail() {
      $this->parts = array();
      $this->to =  "";
      $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
                           );
   }

   /*
    *      void build_message(array part=
    *      Build message parts of an multipart mail
    */

   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";
   }

   /*
    *      void build_multipart()
    *      Build a multipart mail
    */

   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";
   }

   /*
    *      string get_mail()
    *      returns the constructed mail
    */

   function get_mail($complete = true) {
      $mime =  "";
      if (!empty($this->from))
         $mime .=  "From: ".$this->from. "\\n";
      if (!empty($this->headers))
         $mime .= $this->headers. "\\n";

      if ($complete) {
         if (!empty($this->to)) {
            $mime .= "To: $this->to\\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;
   }

   /*
    *      void send()
    *      Send the mail (last class-function to be called)
    */

   function send() {
      $mime = $this->get_mail(false);
      mail($this->to, $this->subject,  "", $mime);
   }
}  // end of class

?>

Я не понял нафига надо $mime = $this->get_mail(false);
конкретно  ---- гетмайл с (фолс)
и
 if ($complete) {
         if (!empty($this->to)) {
            $mime .= "To: $this->to\\n";


если убрать проверку на комплит то  поле to будет сдублировано - зачем так наворачивать то было. Или тут есть высший смысл мне непонятный?
« Последнее редактирование: 08 Апреля 2002, 21:32:52 от Covex »

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
mime_mail - растолкуйте смысл строки
« Ответ #1 : 08 Апреля 2002, 02:50:11 »
Цитировать
Я не понял нафига надо $mime = $this->get_mail(false);

т.к. в mail() итак указываются To и Subj. Чтобы не возникало конфликтов с заголовками.
с уважением,
магистр белой магии.

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
mime_mail - растолкуйте смысл строки
« Ответ #2 : 08 Апреля 2002, 02:55:40 »
ПРОСЬБА ВЫДЕЛЯТЬ КОД PHP!!!
см. FAQ.
с уважением,
магистр белой магии.

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
mime_mail - растолкуйте смысл строки
« Ответ #3 : 08 Апреля 2002, 22:00:04 »
Цитировать
т.к. в mail() итак указываются To и Subj. Чтобы не возникало конфликтов с заголовками.

зачем их вообще обрабатывать в таком случае. Их смпт класс (майм списан из книги) работает с майм и обрабатывает заголовки ТО также. Почту шлет
 $smtp -> send_email($smtp_serverfrom$to$data 
причем  $data = $mail->get_mail();

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
mime_mail - растолкуйте смысл строки
« Ответ #4 : 10 Апреля 2002, 00:02:20 »
в этом классе как раз создана конструкция для того, чтобы была возможность использовать два варианта.
имхо, приоритеты отдаются параметру "дополнительные заголовки"
с уважением,
магистр белой магии.

 

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