Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отправка почты

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
demot
Отправлено: 12 Августа, 2011 - 08:16:55
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




Нашел готовый класс отправки писем с вложениями. Все работает прекрасно, файлы цепляются, письмо формируется и отправляется. Когда приходит - все есть, кроме текста письма, т.е. тема, контакты и прикрепленные файлы есть, а самого текста письма нет. Подскажите где ошибка, а то что-то не могу разобраться.

PHP:
скопировать код в буфер обмена
  1. class mime_mail {
  2.     var $parts;
  3.     var $to;
  4.     var $from;
  5.     var $headers;
  6.     var $subject;
  7.     var $body;
  8.  
  9.     function mime_mail() {
  10.         $this->parts = array();
  11.         $this->to = "";
  12.         $this->from = "";
  13.         $this->subject = "";
  14.         $this->body = "";
  15.         $this->headers = "";
  16.     }
  17.  
  18.     function add_attachment($message, $name = "", $ctype = "application/octet-stream") {
  19.         $this->parts [] = array ("ctype" => $ctype, "message" => $message, "encode" => $encode, "name" => $name);
  20.     }
  21.  
  22.     function build_message($part) {
  23.         $message = $part["message"];
  24.         $message = chunk_split(base64_encode($message));
  25.         $encoding = "base64";
  26.         return "Content-Type: ".$part["ctype"].($part["name"]? "; name = \"".$part["name"]."\"" : "")."\nContent-Transfer-Encoding: $encoding\n\n$message\n";
  27.     }
  28.  
  29.     function build_multipart() {
  30.         $boundary = "b".md5(uniqid(time()));
  31.         $multipart = "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
  32.         for($i = sizeof($this->parts)-1; $i>=0; $i--) $multipart .= "\n".$this->build_message($this->parts[$i]). "--$boundary";
  33.         return $multipart.= "--\n";
  34.     }
  35.  
  36.     function send() {
  37.         $mime = "";
  38.         if (!empty($this->from)) $mime .= "From: ".$this->from. "\n";
  39.         if (!empty($this->headers)) $mime .= $this->headers. "\n";
  40.         if (!empty($this->body)) $this->add_attachment($this->body, "", "text/plain");
  41.         $mime .= "MIME-Version: 1.0\n".$this->build_multipart();
  42.         if (mail($this->to, $this->subject, "koi8-r", $mime)){
  43.             echo "Сообщение отправлено";
  44.         } else {
  45.             echo "Произошла ошибка";
  46.         }
  47.     }
  48. }
  49.  
  50.  
  51. $mail = new mime_mail();
  52. $mail->from = $_POST['from'];
  53. $mail->headers = "Errors-To: [EMAIL=admin@test.ru]admin@test.ru[/EMAIL]";
  54. $mail->to = $_POST['recipient'];
  55. $mail->subject = $_POST['theme'];
  56. $mail->body = $_POST['text'];
  57.  
  58. $path = $_SERVER['DOCUMENT_ROOT'].'/upload/tmp_msg/';
  59. foreach ($files as $key=>$val){
  60.     $attachment = file_get_contents($path.$val);
  61.     $mail->add_attachment("$attachment", $val, "Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAgEASABIAAD/7QT+UGhvdG9zaG");
  62. }
  63. $mail->send();

(Добавление)
Прошу прощения, это видимо какой-то глюк сервера. Щас попробовал на другом - все отлично! Тема закрыта! А класс - может кому еще пригодится.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB