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
Форумы портала PHP.SU :: Версия для печати :: отправка почты с несколькими вложениями
Форумы портала PHP.SU » PHP » Программирование на PHP » отправка почты с несколькими вложениями

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

1. vaanyaa - 22 Марта, 2010 - 13:03:19 - перейти к сообщению
Добрый день.
Появилась такая проблемка. нужно отправлять почтой несколько вложений. Есть скрипт отправки письма с одним вложением который работает.
Вот заголовки:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $boundary = "--".md5(uniqid(time())); // генерируем разделитель
  3.     $headers .= "MIME-Version: 1.0\n";
  4.     $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
  5.     $multipart .= "--$boundary\n";
  6.     $kod = 'windows-1251';
  7.     $multipart .= "Content-Type: text/html; charset=$kod\n";
  8.     $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
  9.     $multipart .= "$html\n\n";
  10.     $message_part = "--$boundary\n";
  11.     $message_part .= "Content-Type: application/octet-stream\n";
  12.     $message_part .= "Content-Transfer-Encoding: base64\n";
  13.     $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
  14.     $message_part .= chunk_split(base64_encode($file))."\n";
  15.     $multipart .= $message_part."--$boundary--\n";
  16.  
  17.  
  18.  


Подскажите какие из этих залоговков надо дублировать, или какой другой механизм использовать для нескольких файлов.
Спаси[бо|те]
2. Тоха - 22 Марта, 2010 - 13:13:48 - перейти к сообщению
все. В том числе и разделитель в конце. Только генерировать его опять не надо Улыбка
(Добавление)
хотя нет, вру, извините.
PHP:
скопировать код в буфер обмена
  1. $message_part = "--$boundary\n";
  2.     $message_part .= "Content-Type: application/octet-stream\n";
  3.     $message_part .= "Content-Transfer-Encoding: base64\n";
  4.     $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
  5.     $message_part .= chunk_split(base64_encode($file))."\n";


Вот непосредственно вложение
3. kroks - 22 Марта, 2010 - 13:49:46 - перейти к сообщению
А ты из нескольких вложений сделай одно. Попробуй все в архив положить
4. vaanyaa - 22 Марта, 2010 - 13:52:16 - перейти к сообщению
Добавил ваш кусочек кода. Все равно пришел один вложенный файл
(Добавление)
kroks пишет:
А ты из нескольких вложений сделай одно. Попробуй все в архив положить


Дело в том что вне нужно не конкретные файлы отослать. А что бы была реализована возможность отправлять несколько файлов.


Прошу прощения, вопрос снимается.(в коде пропустил одну точку)))
5. AlexMen - 05 Июля, 2016 - 16:44:39 - перейти к сообщению
Всех приветствую!
Пришлось поднять старую тему, просто проблема та же - при использовании кода приходит только одно вложение (последнее).

Помогите, пожалуйста, исправить. Вот код:
PHP:
скопировать код в буфер обмена
  1. $boundary = "--".md5(uniqid(time())); // генерируем разделитель
  2. $headers .= "MIME-Version: 1.0\n";
  3. $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
  4. $multipart .= "--$boundary\n";
  5. $kod = 'utf-8';
  6. $multipart .= "Content-Type: text/plain; charset=$kod\n";
  7. $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
  8. $multipart .= "$text\n\n";
  9. $message_part = "--$boundary\n";
  10. $message_part .= "Content-Type: application/octet-stream\n";
  11. $message_part .= "Content-Transfer-Encoding: base64\n";
  12. $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
  13. $message_part .= chunk_split(base64_encode($file))."\n";
  14.         if ($picture2 != "") {
  15.                 $message_part .= "--$boundary\n";
  16.                 $message_part .= "Content-Type: application/octet-stream\n";
  17.                 $message_part .= "Content-Transfer-Encoding: base64\n";
  18.                 $message_part .= "Content-Disposition: attachment; filename = \"".$path2."\"\n\n";
  19.                 $message_part .= chunk_split(base64_encode($file))."\n";
  20.                                 }
  21.         if ($picture3 != "") {
  22.                 $message_part .= "--$boundary\n";
  23.                 $message_part .= "Content-Type: application/octet-stream\n";
  24.                 $message_part .= "Content-Transfer-Encoding: base64\n";
  25.                 $message_part .= "Content-Disposition: attachment; filename = \"".$path3."\"\n\n";
  26.                 $message_part .= chunk_split(base64_encode($file))."\n";
  27.                                 }
  28. $multipart .= $message_part."--$boundary--\n";
  29. mail($email,$subject,$multipart,$headers);
6. caballero - 05 Июля, 2016 - 17:23:43 - перейти к сообщению
за четыре года можно было бы уже додуматся использолвать например SwiftMailer а не писать это вручную.
7. AlexMen - 05 Июля, 2016 - 17:33:08 - перейти к сообщению
caballero, а вместо того чтобы умничать, что-то конструктивное по вопросу сказать нельзя?
Я в поиске тему нашел, т.к. вопрос возник только что.
8. caballero - 05 Июля, 2016 - 22:12:07 - перейти к сообщению
это и есть конструктивно.
Нужно использовать библиотеку где уже отлажен протокол в соответствии со всеми тонкостями стандарта а не лепить самопал

 

Powered by ExBB FM 1.0 RC1