Здраствуйте. Мне нужно отправить pdf на почту. Вот мой код Код (Text): $to = $_POST['email']; $subject = 'portfolio item'; $message = 'You choose portfolio'; $filename = '1.pdf'; $filepath = ($_SERVER['DOCUMENT_ROOT'].'/wp-content/plugins/portfolio-item-plus/1.pdf'); $boundary = "--".md5(uniqid(time())); $mailheaders = "MIME-Version: 1.0;\r\n"; $mailheaders .="Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; $mailheaders .= "From:<megarazrabot4ik.com>\r\n"; $mailheaders .= "Reply-To: reply-to@megarazrabot4ik.com\r\n"; $multipart = "--$boundary\r\n"; $multipart .= "Content-Type: text/html; charset=windows-1251\r\n"; $multipart .= "Content-Transfer-Encoding: base64\r\n"; $multipart .= '\r\n'; $multipart .= chunk_split(base64_encode(iconv("utf8", "windows-1251", $message))); $fp = fopen($filepath,"r"); if (!$fp) { print "not22"; exit(); } $file = fread($fp, filesize($filepath)); fclose($fp); $message_part = "\r\n--$boundary\r\n"; $message_part .= "Content-Type: application/pdf; name=\"$filename\"\r\n"; $message_part .= "Content-Transfer-Encoding: base64\r\n"; $message_part .= "Content-Disposition: attachment; filename=\"$file\"\r\n"; $message_part .= '\r\n'; $message_part .= chunk_split(base64_encode($file)); $message_part .= "\r\n--$boundary--\r\n"; $multipart .= $message_part; mail($to,$subject,$multipart,$mailheaders); он работает не корректно. На почту приходит письмо с вложением, вложение нужного формата, но при попытки открытии выдает ошибку что-то типа "письмо было переслано по email и не докодировано" . ПОдскажите в чём проблема. За ответ буду благодарен
в одинарных кавычках это просто бэкслеш-ар-бэкслеш-эн пустое имя зачем ";"? мне немного лениво выполнять этот код у себя на сервере. покажите исходник письма приходящего на почту. вместо вашего pdf запихните текстовик с парой букв. по исходнику быстрее понять в каком моменте композиция неверная.
Спасибо тебе большое)) Два дня бился с этой проблемой да всё без толку))) Проблема оказалась в экранировании символов. Там нужно было двойные кавычки поставить вместо одинарных