Php 发送带有文件附件的表单电子邮件既不发送电子邮件也不报告错误
我正在尝试发送带有文件上传的表单,用户输入了该表单,但由于某些原因,它似乎没有发送邮件。 问题是,我并没有得到一个错误来理解我在哪里犯了错误 在一切发生之前,我不想使用任何库来完成它,我想保持它的简单 代码如下:Php 发送带有文件附件的表单电子邮件既不发送电子邮件也不报告错误,php,Php,我正在尝试发送带有文件上传的表单,用户输入了该表单,但由于某些原因,它似乎没有发送邮件。 问题是,我并没有得到一个错误来理解我在哪里犯了错误 在一切发生之前,我不想使用任何库来完成它,我想保持它的简单 代码如下: <?php if(isset($_POST['Submit'])){ $strTo = "my.email@address.com"; $strSubject = "Purchase request from " . $_POST["formName"]
<?php
if(isset($_POST['Submit'])){
$strTo = "my.email@address.com";
$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的框架,所以链接被设置为#!学生表格第二阶段
感谢您提供的帮助。创建一个新的php文件,将此文件添加到其中
<?php
phpinfo();
?>
上传并在浏览器中打开它,向下滚动页面,检查“sendmail_path”是否为空,或者查找已禁用的功能可能是主机已禁用邮件功能
或者你可以运行一个小函数来检查
<?php
$to = 'you@yourdomain.com';
$subject = 'Mail test';
$message = 'This is a test email';
$headers = 'From: you@yourdomain.com' . "\r\n" .
'Reply-To: you@yourdomain.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
更改“you@yourdomain.com“发送到您的电子邮件地址
{UPDATE}
你可以使用另一个电子邮件系统发送它。或者使用脚本
我喜欢:
您尝试过不同的电子邮件(gmail、hotmail…)吗?可能在你的电子邮件收件箱中被认为是垃圾邮件?只是尝试了一个gmail邮箱,没有发送电子邮件:-/在php中打开错误报告和显示错误,然后尝试..你可能会得到实际的错误我的发送邮件路径是空的,我该怎么办?
<?php
require_once("htmlMimeMail5.php");
$mail = new htmlMimeMail5();
$mail->setFrom("YourName <you@example.com>");
$mail->setSubject('Test email');
$mail->setHTML('<body background="background.gif"><b>Sample HTML</b></body>');
$mail->send(array('sentto@example.com'));
?>