PHP Отправка писем с прикрепленными файлами – электронная почта не отправляется вообще

Прочитав различные статьи по отправке писем с вложениями в PHP (я использую ASP с VBScript), я написал код ниже. К сожалению, это совсем не работает. Он не только не отправляет электронное письмо с приложением, но, по-видимому, письмо не отправляет вообще, хотя мой сценарий говорит, что он отправил. Где я ошибся? Я не использую форму для загрузки файла. Это статический скрипт.

<?php $EmailTo = "Me@here.com"; $EmailFrom = "You@There.com"; $EmailSubject = "The Email Subject"; $MailBoundary = md5(uniqid(time())); $Headers = "To: ". $EmailTo . "\r\n"; $Headers .= "From: ". $EmailFrom . "\r\n"; $Headers = "MIME-Version: 1.0\r\n"; $Headers .= "Content-type: multipart/mixed;boundary=\"$MailBoundary \""; $Headers .= "\r\n\r\n"; $Headers .= "This is a multi-part message in MIME format."; $Headers .= "\r\n\r\n"; $FileAttachment = "AttachedFile.pdf"; $File = fopen($FileAttachment, "r"); $FileData = fread($File, filesize($FileAttachment)); $FileData = chunk_split(base64_encode($FileData)); $FileName = basename($FileAttachment); $EmailBody = "--$MailBoundary\r\n"; $EmailBody .= "Content-type: text/html; charset=iso-8859-1\r\n"; $EmailBody .= "Content-transfer-encoding: 8bit\r\n\r\n"; $EmailBody .= "<html>" . chr(13) . "<head>" . chr(13) . "<style>" . chr(13) . ".breg {font-family:arial;font-size:10pt;color:#000000;padding:5px;}" . chr(13) . "</style>" . chr(13) . "</head>" . chr(13) . "<body>" . chr(13) . "<div class=" . chr(34) . "breg" . chr(34) . ">" . chr(13) . "The message text body goes here" . chr(13) . "</div>" . chr(13) . "</body>" . chr(13) . "</html>"; $EmailBody .= "--$MailBoundary\r\n"; $EmailBody .= "Content-type: " . mime_content_type($File) . "; name=$FileName\r\n"; $EmailBody .= "Content-transfer-encoding:base64\r\n\r\n"; $EmailBody .= $FileData. "\r\n\r\n"; $EmailBody .= " --$MailBoundary--"; if (mail($EmailTo, $EmailSubject, $EmailBody, $Headers)) { echo "Email to " . $EmailTo . " has been sent" . chr(13) . "<br />" . chr(13); } else { echo "<b>Email to " . $EmailTo . " was not sent</b>" . chr(13) . "<br />" . chr(13); } ?> 

Related of "PHP Отправка писем с прикрепленными файлами – электронная почта не отправляется вообще"

 For sending mail with attachment using php mail().Try this code: <?php //If there is no error, send the email if(isset($_POST['ur_submit_button_name'])) { $EmailTo = "Me@here.com"; $EmailFrom = "You@There.com"; $EmailSubject = "The Email Subject"; $separator = md5(time()); // carriage return type (we use a PHP end of line constant) $eol = PHP_EOL; // attachment name $filename = "ip.zip";//store that zip file in ur root directory $attachment = chunk_split(base64_encode(file_get_contents('ip.zip'))); // main header $headers = "From: ".$from.$eol; $headers .= "MIME-Version: 1.0".$eol; $headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\""; // no more headers after this, we start the body! // $body = "--".$separator.$eol; $body .= "Content-Transfer-Encoding: 7bit".$eol.$eol; $body .= "This is a MIME encoded message.".$eol; // message $body .= "--".$separator.$eol; $body .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol; $body .= "Content-Transfer-Encoding: 8bit".$eol.$eol; $body .= $message.$eol; // attachment $body .= "--".$separator.$eol; $body .= "Content-Type: application/octet-stream; name=\"".$filename."\"".$eol; $body .= "Content-Transfer-Encoding: base64".$eol; $body .= "Content-Disposition: attachment".$eol.$eol; $body .= $attachment.$eol; $body .= "--".$separator."--"; // send message if (mail($to, $subject, $body, $headers)) { $mail_sent=true; echo "mail sent"; } else { $mail_sent=false; echo "Error,Mail not sent"; } } ?> 

я думаю, что у вас есть ошибка в вашем контенте электронной почты, сгенерируйте свой почтовый контент с помощью функции imap_mail_compose:

 mail('', 'message subject', '', imap_mail_compose(array header, array body));