Здравствуйте. Пока получается только отправить сообщение ,но только с одним вложением. Пытаюсь сделать так ,но все равно приходит только одно вложение. Код (Text): <?php $to="mail@mail.ru"; $paths=array(); $paths[0]= $_REQUEST['mail_file0']; $paths[1]= $_REQUEST['mail_file1']; $thm = "Заявка "; $address = $_REQUEST['address']; $tipned = $_REQUEST['tipned']; $vidned = $_REQUEST['vidned']; $tipstr = $_REQUEST['tipstr']; $ploshad = $_REQUEST['ploshad']; $etazh = $_REQUEST['etazh']; $remont = $_REQUEST['remont']; $kommyn = $_REQUEST['kommyn']; $more = $_REQUEST['more']; $price = $_REQUEST['price']; $info = $_REQUEST['info']; $msg = "<table> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Адрес</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$address."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Тип недвижимости</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$tipned."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Вид недвижимости</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$vidned."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Тип строения\участка</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$tipstr."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Площадь</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$ploshad."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Этажность</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$etazh."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Состояние ремонта</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$remont."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Коммуникации</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$kommyn."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Удалённость от моря (метров)</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$more."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Цена</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$price."</td></tr> <tr><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>Дополнительная информация. Комментарий</td><td style='border:1px solid #000;padding:10px 10px 10px 10px;'>".$info."</td></tr> </table>"; send_mail($to, $thm, $msg, $paths); // Вспомогательная функция для отправки почтового сообщения с вложением function send_mail($to, $thm, $html, $paths) { $boundary = "--".md5(uniqid(time())); // генерируем разделитель $headers .= "MIME-Version: 1.0\n"; $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"; $multipart .= "--$boundary\n"; $kod = 'utf-8'; $multipart .= "Content-Type: text/html; charset=$kod\n"; $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n"; $multipart .= "$html\n\n"; foreach ($paths as $key => $path) { $message_part = "--$boundary\n"; $message_part .= "Content-Type: application/octet-stream\n"; $message_part .= "Content-Transfer-Encoding: base64\n"; $fp = fopen($path,"r"); if (!$fp) { print "Файл $path не может быть прочитан"; exit(); } $file = fread($fp, filesize($path)); fclose($fp); $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n"; $message_part .= chunk_split(base64_encode($file))."\n"; $multipart .= "\n\n" .$message_part."--$boundary--\n"; } if(!mail($to, $thm, $multipart, $headers)) { echo "К сожалению, письмо не отправлено"; exit(); } } ?> Помогите что сделать ? как дописать?
то есть вот так пытаюсь повторять заголовки письма ,чтобы отправить несколько файлов,но приходит только один файл. может я не то форичу? Код (Text): foreach ($paths as $key => $path) { $message_part = "--$boundary\n"; $message_part .= "Content-Type: application/octet-stream\n"; $message_part .= "Content-Transfer-Encoding: base64\n"; $fp = fopen($path,"r"); if (!$fp) { print "Файл $path не может быть прочитан"; exit(); } $file = fread($fp, filesize($path)); fclose($fp); $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n"; $message_part .= chunk_split(base64_encode($file))."\n"; $multipart .= "\n\n" .$message_part."--$boundary--\n"; }
да. неожиданный ответ.) а чем например готовым посоветуете пользоваться? P.S. Первоначальный вопрос топика остается актуальным.
нашел простенький скрипт отправки с одним вложением и форичем допилил. код с первого поста был громоздкий ,вот я и запутался в нем.
Есть такая класс - PHPMailer.php - которым или напрямую можно пользоваться, или унаследоваться и отправлять письма с любого места одной строкой с любым количеством вложений через любые каналы и тп.