Intereting Posts
Функция set_magic_quotes_runtime () устарела в phpmailer Magento – переопределение модели не работает в local codePool Почтовый словарь от Swift до PHP Используя DOMDocument, можно ли получить все элементы, которые существуют в пределах определенной DOM? PHP Websocket аутентифицирует пользователя в тесте (pass session cookie) Не удалось подключиться к базе данных с Android Как удалить каждый третий элемент в php-массиве до тех пор, пока останется только один элемент и не напечатает этот элемент? при отправке заголовков CURLOPT_HEADER возврату данных не поступало. PHP CURL Как получить чистые URL-адреса только для двух переменных? PDO не возвращает результатов, тогда как командная строка MySQL возвращает ожидаемый результат Создайте Joomla! Статья не удалось открыть файл "" ошибка в PHP API PHP PHP получает значения из массива SimpleXMLElement Как обрезать свойства объекта в PHP? Приложение электронной почты MPDF отправляет пустой PDF-файл

Как отправить электронную почту с вложением с помощью PHP?

Я использую следующий код для отправки электронной почты с вложением, но правильный файл не получает сообщение с почтой.

$UnidID = $_COOKIE['UniqueID']; $guid = $_COOKIE['guid']; $target_path = "userdata/".$UniqueID."/".$iGuid."/Outputs"; $fname = getpathmail($UnidID,$guid); $target_path = $target_path.$filname; $fileatt_type = "application/fbf"; // File Type $fileatt_name = $fname; $data = $target_path; $email_from = "EHPAdmin@fugro.in"; $email_subject = "EHP/PPP process"; $email_message = "Processed result for EHP/PPP processing"; $email_to = $_GET['Email'] ; $headers = "From: ".$email_from; $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $email_message .= "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_message .= "\n\n"; $data = chunk_split(base64_encode($data)); $email_message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data .= "\n\n" . "--{$mime_boundary}--\n"; $ok = @mail($email_to, $email_subject, $email_message, $headers); 

Related of "Как отправить электронную почту с вложением с помощью PHP?"

Я бы предложил использовать библиотеку для отправки eMails, поскольку она будет обрабатывать все связанные с заголовком вещи. Посмотрите на Zend_Mail . Отправка вложений так же просто, как и

 $mail = new Zend_Mail(); $at = $mail->createAttachment($myImage); $at->type = 'image/gif'; $at->disposition = Zend_Mime::DISPOSITION_INLINE; $at->encoding = Zend_Mime::ENCODING_8BIT; $at->filename = 'test.gif'; $mail->send(); 

Вы должны поместить все свое $email_message сообщение в $email_message :

 $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; $headers = "From: ".$email_from; $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $email_message .= "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . chunk_split(base64_encode($data)) . "--{$mime_boundary}--\n"; 

Может быть, вы пропустили это в своем коде

  ... $file = fopen($data,'rb'); //saves content in $data itself $data = fread($file,filesize($data)); fclose($file); ... 

должен работать, не исполнялся сам. попробуйте

Вы должны указать файл вложения:

 "Content-Disposition: attachment; filename='/path/to/the/file/filename'";