Wordpress - PHP Mail Form Multi-File

165
14 января 2018, 06:12

Здравствуйте, делаю отправку сообщений, нужно прикреплять мульти-файлы, подскажите, пожалуйста, как обработать файлы и отправить их ? Вот код страницы: https://pastebin.com/VfyM3k3q

Answer 1

Чтобы вкладывать файлы в письмо нужно указывать тип контента multipart/mixed, после указания поля From:

$separator = (uniqid(time()));
$headers .= "Content-Type: multipart/mixed; boundary=$separator" . "\n";

далее составляем сообщение:

$body = "--$separator\n";
$body .= "Content-type: text/html; charset=UTF-8\n"; // кодировка письма
$body .= "Content-Transfer-Encoding: 8bit\n\n";
$body .="Привет. <br>Здесь можно использовать текст в формате <b>HTML</b> <br> "; // и т.д.

После чего добавляем нужные файлы:

for ($j=0;$j<count($files); $j++)
                        {
                        $file=$files[$j];
                        $body.= "--$separator\n";
                        $filetype= mime_content_type($file);
                        $body.= "Content-Type: \"$filetype\"; name==?utf-8?B?".base64_encode($file)."?=\n";
                        $body.= "Content-Transfer-Encoding: base64\n";
                        $body.= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($file)."?=\n\n";
                        $body.= chunk_split(base64_encode(file_get_contents($file)))."\n";
                        }
                }

и в самом конце письма:

$body.= "--".$separator ."--\n";

после чего уже вызывается отправка письма.

READ ALSO
Убрать перенос строки в начале текста

Убрать перенос строки в начале текста

Текст берется из базы данных и при выводе на экран, вставляет новый абзац

160
PHP привести signed int к unsigned?

PHP привести signed int к unsigned?

Как можно отрицательное значение привести к беззнаковому?

168
PHP 7.2 проблема соединения с dbf через PDO

PHP 7.2 проблема соединения с dbf через PDO

У кого есть опыт работы с dbf на PHP 72 При попытке подключиться

206