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 :: Версия для печати :: Скрипт отправки сообщений с 4-мя вложениями
Форумы портала PHP.SU » Объявления » FreeLance » Скрипт отправки сообщений с 4-мя вложениями

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

1. Vadim_BV - 29 Апреля, 2016 - 14:50:36 - перейти к сообщению
Доброго времени суток, уважаемые. Требуется помощь.
Дано:
HTML – страница с со следующими полями:
CODE (html):
скопировать код в буфер обмена
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Отправка сообщения с вложением</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <H3> <center><font color=#1E90FF>Отправка сообщения с вложением</font></H3>
  7. <center>
  8. <table width=1 border=0>
  9. <form action=simple_mail.php enctype='multipart/form-data' method=post>
  10.  
  11. <tr><td width=50%>To:</td><td align=right><input type=text name=mail_to maxlength=32></td></tr>
  12. <tr><td width=50%>Subject:</td><td align=right><input type=text name=mail_subject maxlength=64></td></tr>
  13. <tr><td colspan=2>Сообщение:<br><textarea cols=50 rows=8 name=mail_msg></textarea></td>
  14. <tr><td width=50%>Photo1:</td><td align=right><input type=file name=mail_file_1 maxlength=64></td></tr>
  15. <tr><td width=50%>Photo2:</td><td align=right><input type=file name=mail_file_2 maxlength=64></td></tr>
  16. <tr><td width=50%>Photo3:</td><td align=right><input type=file name=mail_file_3 maxlength=64></td></tr>
  17. <tr><td width=50%>Photo4:</td><td align=right><input type=file name=mail_file_4 maxlength=64></td></tr>
  18.  
  19. </tr><tr><td colspan=2><input type=submit value='Отправить'></td></tr>
  20. </form>
  21. </table>
  22. </center>
  23. </BODY>
  24. </HTML>


PHP – страница отправки сообщений с вложением.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   $_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject']));
  3.   $_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg']));
  4.   $picture = "";
  5.   // Если поле выбора вложения не пустое - закачиваем его на сервер
  6.   if (!empty($_FILES['mail_file']['tmp_name']))
  7.   {
  8.     // Закачиваем файл
  9.     $path = $_FILES['mail_file']['name'];
  10.     if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
  11.   }
  12.  
  13.   $mail_to = "mail@mail.ru";
  14.   $thm = $_POST['mail_subject'];
  15.   $msg = $_POST['mail_msg'];
  16.  
  17.   // Отправляем почтовое сообщение
  18.  
  19.   if(empty($picture)) mail($mail_to, $thm, $msg);
  20.   else send_mail($mail_to, $thm, $msg, $picture);
  21.   // Вспомогательная функция для отправки почтового сообщения с вложением
  22.   function send_mail($to, $thm, $html, $path)
  23.   {
  24.     $fp = fopen($path,"r");
  25.     if (!$fp)
  26.     {
  27.       print "Файл $path не может быть прочитан";
  28.       exit();
  29.     }
  30.     $file = fread($fp, filesize($path));
  31.     fclose($fp);
  32.     $boundary = "--".md5(uniqid(time())); // генерируем разделитель
  33.     $headers .= "MIME-Version: 1.0\n";
  34.     $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
  35.     $multipart .= "--$boundary\n";
  36.     $kod = 'koi8-r'; // или $kod = 'windows-1251';
  37.     $multipart .= "Content-Type: text/html; charset=$kod\n";
  38.     $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
  39.     $multipart .= "$html\n\n";
  40.  
  41.     $message_part = "--$boundary\n";
  42.     $message_part .= "Content-Type: application/octet-stream\n";
  43.     $message_part .= "Content-Transfer-Encoding: base64\n";
  44.     $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
  45.     $message_part .= chunk_split(base64_encode($file))."\n";
  46.     $multipart .= $message_part."--$boundary--\n";
  47.  
  48.     if(!mail($to, $thm, $multipart, $headers))
  49.     {
  50.       echo "К сожалению, письмо не отправлено";
  51.       exit();
  52.     }
  53.   }
  54. ?>


Требуется: допилить скрипт для отправки до 4-х вложений в одном сообщении (включая возможность корректной отправки сообщений без вложений, а также отправка сообщений с 1-м, 2-мя, 3-мя вложениями из возможных 4-х).

Собственно, какова цена вопроса и сколько времени займет?
2. caballero - 29 Апреля, 2016 - 16:47:25 - перейти к сообщению
возьми http://swiftmailer[dot]org/ или типа того и не будет никакой цены вопроса.
3. Vadim_BV - 01 Мая, 2016 - 16:20:00 - перейти к сообщению
Нет времени и желания разбираться в этом самому, собственно по этому и отписался в разделе FreeLance. Если проще подключить указанную библиотеку, то можно и так сделать. Кто нибудь готов помочь в решении вопроса?

 

Powered by ExBB FM 1.0 RC1