我試圖發送帶有用戶輸入的文件上傳的表單,並且由於某種原因,它似乎不發送郵件。 問題是,我沒有得到一個錯誤,以瞭解我有什麼錯誤。使用文件附件發送表單電子郵件,但不發送電子郵件或報告錯誤
在此之前,我不想使用任何庫來做到這一點,我想保持簡單。
下面是代碼:
<?php
if(isset($_POST['Submit'])){
$strTo = "[email protected]";
$strSubject = "Purchase request from " . $_POST["formName"] . $_POST["formSurname"];
$strMessage = nl2br($_POST["formName"] . $_POST["formEmail"] . $_POST["formInstitute"] . $_POST["formCourse"] . $_POST["formNotes"]);
//*** Uniqid Session ***//
$strSid = md5(uniqid(time()));
$strHeader = "";
$strHeader .= "From: ".$_POST["formEmail"]."<".$_POST["formEmail"].">\nReply-To: ".$_POST["formEmail"]."";
$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.";
}
}
?>
,這裏是形式:
<form action="#!/studentform.2ndphase" method="post" name="form1" enctype="multipart/form-data">
<table width="500">
<tr>
<td>שם פרטי: </td>
<td><input name="formName" type="text" id="name"></td>
</tr>
<tr>
<td>שם משפחה: </td>
<td><input name="formSurname" type="text" id="surname"></td>
</tr>
<tr>
<td>דואר אלקטרוני: </td>
<td><input name="formEmail" type="text"></td>
</tr>
<tr>
<td>מוסד אקדמי: </td>
<td><input name="formInstitute" type="text"></td>
</tr>
<td>מסלול: </td>
<td><input name="formCourse" type="text"></td>
</tr>
<tr>
<td>הערות</td>
<td><textarea name="formNotes" cols="30" rows="4" id="formNotes"></textarea></td>
</tr>
<tr>
<td>Attachment</td>
<td><input name="fileAttach" type="file"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="שלח"></td>
</tr>
</table>
</form>
行動引導到不同的頁面,因爲我使用的是基於PHP框架,這就是爲什麼鏈接設置爲#!studentform.2ndphase
感謝您給予的任何幫助。
您是否嘗試過不同的電子郵件(Gmail時,Hotmail的...)?也許它在您的電子郵件收件箱中被視爲垃圾郵件? – theredled
剛剛嘗試了一個Gmail,沒有發送電子郵件: -/ –
在PHP開關error_reporting和顯示錯誤,然後嘗試..你可能會得到實際的錯誤 –