Отправить электронное письмо с приложением
Всем привет,
Я пытаюсь создать тестовую страницу отправки электронной почты PHP. Я действительно Новичок в PHP.
Я прикрепляю PDF-файл к письму, но он не отправляет его
Пожалуйста, посоветуйте
Что я уже пробовал:
Вот html страница:
<pre><body> <form action="php_sendmail_upload2.php" method="post" name="form1" enctype="multipart/form-data"> <table width="343" border="1"> <tr> <td>To</td> <td><input name="txtTo" type="text" id="txtTo"></td> </tr> <tr> <td>Subject</td> <td><input name="txtSubject" type="text" id="txtSubject"></td> </tr> <tr> <td>Description</td> <td><textarea name="txtDescription" cols="30" rows="4" id="txtDescription"></textarea></td> </tr> <tr> <td>Form Name</td> <td><input name="txtFormName" type="text"></td> </tr> <tr> <tr> <td>Form Email</td> <td><input name="txtFormEmail" type="text"></td> </tr> <tr> <td>Attachment</td> <td><input name="fileAttach" type="file"></td> </tr> <tr> <td> </td> <td><input type="submit" name="Submit" value="Send"></td> </tr> </table> </form> </body>
PHP-код:
<?PHP $strTo = $_POST["txtTo"]; $strSubject = $_POST["txtSubject"]; $strMessage = nl2br($_POST["txtDescription"]); //*** Uniqid Session ***// $strSid = md5(uniqid(time())); $strHeader = ""; $strHeader .= "From: ".$_POST["txtFormName"]."<".$_POST["txtFormEmail"].">\nReply-To: ".$_POST["txtFormEmail"].""; $strHeader .= "MIME-Version: 1.0\n"; $strHeader .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n"; $strHeader .= "This is a multi-part message in MIME format.\n"; $strHeader .= "--".$strSid."\n"; $strHeader .= "Content-type: text/html; charset=utf-8\n"; $strHeader .= "Content-Transfer-Encoding: 7bit\n\n"; $strHeader .= $strMessage."\n\n"; //*** Attachment ***// if($_FILES["fileAttach"]["name"] != "") { $strFilesName = $_FILES["fileAttach"]["name"]; $strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"]))); $strHeader .= "--".$strSid."\n"; $strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n"; $strHeader .= "Content-Transfer-Encoding: base64\n"; $strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n"; $strHeader .= $strContent."\n\n"; } $flgSend = @mail($strTo,$strSubject,null,$strHeader); // @ = No Show Error // if($flgSend) { echo "Mail send completed."; } else { echo "Cannot send mail."; } ?>
Richard MacCutchan
Удалите@, чтобы вы могли видеть любое сообщение об ошибке.
Samira Radwan
Это было полезно, спасибо.
Мне удалось отправить письмо, но я получаю его как все хешированное или зашифрованное!! ты хоть представляешь, почему? спасибо
Richard MacCutchan
К сожалению, нет. Вам нужно будет сделать некоторую отладку вашего кода, чтобы точно увидеть, что происходит. В качестве отправной точки никогда не отключайте сообщения об ошибках,они помогут вам.