我正在PHP Web应用程序中实现邮件实用程序。它适用于简单的电子邮件。但是如果尝试附加任何文件,则不调用PHPMailer的发送功能,即不发送邮件,也不显示任何错误。以下是我的示例代码:
HTML表单
<form action="Email.php" enctype="multipart/form-data" method="POST">
<input type="text" name = "to" id="to">
<br>
<input type="file" name="file" id="file">
<br>
<input type="text" name="subject" id="subject" size="155"><br>
<textarea rows="10" cols="50" name="msg" id="msg">
</textarea>
<br>
<input type="submit" value="Send Mail">
</form>
PHP代码
include 'library.php';
include "class.phpmailer.php";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = USERNAME;
$mail->Password = USERPASS;
$mail->SetFrom(USERNAME);
$mail->Subject =$_POST['subject'];
$mail->MsgHTML($_POST['msg']);
$mail->IsHTML(true);
$mail->AddAddress($_POST['to']);
if (!empty($_FILES['file']['tmp_name']))
{
move_uploaded_file($_FILES["file"]["tmp_name"],"Upload/" . $_FILES["file"]["name"]);
if(!$mail->AddAttachment("Upload/" . $_FILES['file']['name']))
{
echo "Error in attachments";
}
else
{
echo "File Attached";
}
}
$result = $mail->Send();
echo $result;
if(!$result) {
echo 'Error sending email' . $mail->ErrorInfo;
}
else{
echo "Email Sent";
}
此代码的输出如下:
File Attached
此后不会显示任何消息,也不会从提供的ID发送邮件。但如果我不添加任何附件,它将正常工作。
答案 0 :(得分:0)
我已经解决了这个问题。解决方案是我试图添加350KB的文件,这花费了更多的时间,并且错误超过了30秒。我只是增加了时间限制,问题就解决了。谢谢大家的帮助。