为什么PHPMailer花费太多时间发送电子邮件,并且一旦它发送了电子邮件,我就收到了垃圾邮件

时间:2019-06-07 06:23:15

标签: php email phpmailer

我想使用用户输入的电子邮件地址将电子邮件发送到使用PHPMailer且不使用SMTP的电子邮件地址。但是发送电子邮件会花费太多时间,一旦发送电子邮件,我就会收到垃圾邮件而不是收件箱中的邮件。 下面是我的完整代码-

<?php 
session_start();
require_once 'class.phpmailer.php';
$mail = new PHPMailer;

$mail->From = $_POST['email'];
$mail->FromName ='Contacted By : '.$_POST['fname'];

$mail->addAddress("dev5.veomit@gmail.com"); 

$mail->addReplyTo($_POST['email'], "Reply");

$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<b>Name : </b>".$_POST['fname'].'<br/><b>Email Address : </b>'.$_POST['email'].'<br/><b>Message : </b>'.$_POST['msg'];
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    $_SESSION['sucess-email']='You Have Contacted Successfully.';
    header("Location: https://m-expressions.com/test/voy/");
}
 ?>

请帮助我解决此问题,并先谢谢您。

1 个答案:

答案 0 :(得分:0)

首先,您使用的是旧版本的PHPMailer; Update to the latest version

虽然您说的很慢,但您没有说有多慢-1秒? 30秒? 10分钟?您正在使用默认的mail()传输进行发送,这意味着您正在提交到本地邮件服务器-可能配置错误或速度较慢,但​​这不在PHPMailer的职责范围内。

您正在伪造“发件人”地址(如果您的邮件服务器允许您这样做),将导致SPF检查失败,这通常会使您进入垃圾邮件文件夹。改为这样做:

$mail->setFrom('me@example.com', 'My Name');
$mail->addAddress('me@example.com');
$mail->addReplyTo($_POST['email']);

也就是说,从您自己发送到自己,但使用提交者的答复。通过这种方式对邮件的回复将发送给提交者,但您不是在伪造发件人地址。

我建议您再次使用the contact form example provided with PHPMailer