为什么邮件发不出去?

Why mail is not going?

$sql="insert into landing_client_data(name,email,contact_no,company,ip,city,region,country,postal,utm_source,utm_medium,utm_term,utm_campaign,created_date) values('".$_POST['name']."', '".$_POST['email']."', '".$_POST['phone']."','".$_POST['company']."','".$ip."', '".$city."', '".$region."', '".$country."', '".$postal."', '".$utm_source."', '".$utm_medium."', '".$utm_term."', '".$utm_campaign."', '".$created_date."')";
  
$res=mysql_query($sql);



//**AFTER THIS I DON'T KNOW WHETHER ITS GOING INSIDE 'if($res)' OR NOT**




if($res){
require('PHPMailer-master/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->isSMTP();                                      
$mail->Host = 'smtp.gmail.com';                       
$mail->SMTPAuth = true;                               
$mail->Username = 'test.test6@gmail.com';            
$mail->Password = 'test@123';                        
$mail->SMTPSecure = 'tls';                            
$mail->Port = 587;



$mail->From = 'sachin@aarnasystems.com';
$mail->FromName = 'Sachin Patil CEO, Aarna Systems';                                      
$mail->setFrom('sachin@test.com', 'test');
$mail->addReplyTtesthin@test.com', 'test'); 



$mail->WordWrap = 50;                             
$mail->isHTML(true);                              

$mail->Subject = 'Enquiry: Ecommerce Website Design-';
$mail->Body    = 'Enquiry Details:<br/>
Name: '.$_POST['name'].'<br/>
Email: '.$_POST['email'].'<br/>
Phone: '.$_POST['phone'].'<br/>
Company: '.$_POST['company'].'<br/>';
$mail->send();

// **NoT REACHING HERE**
   
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
$extra = '/portfolio_ln/thank-you.php';
header("Location: http://$host$extra");
exit;

}

一切都很好,但邮件不会发送到所需的电子邮件 ID。为什么?发送邮件后,它也应该重定向到 'thankyou.php',但这也不起作用。请告诉我该怎么做?

悉尼建筑,

希望您已经检查了 $mail 的回复。

请打印该响应并查看是否有任何错误。还要确保您没有在本地主机上工作。如果您使用本地主机,则由于邮件服务器配置,邮件发送功能将无法使用。

请按如下所述进行一些更改:

  1. 替换$mail->addReplyT line with $mail->addReplyTo('testhin@test.com', 'test')

  2. 替换邮件发件人的正文部分,因为您需要使用双单引号而不是单引号。

    $mail->Body    = 'Enquiry Details:<br/>
        Name: '.$_POST["name"].'<br/>
        Email: '.$_POST["email"].'<br/>
        Phone: '.$_POST["phone"].'<br/>
        Company: '.$_POST["company"].'<br/>';
    
  3. 同时添加行error_reporting(E_ALL);页面的第一行和其他编程问题的调试仍然存在。

如果您遇到任何关于此的 query/concern,请告诉我。

谢谢!

请使用以下代码。这将打印邮件程序函数的数组响应。之后我们需要检查 [SMTPDebug][error_count:protected] 值,如果两个值都是 NOT 0 那么这意味着有一些错误或者如果它是 0 那么那里您的代码中没有错误。此外,一旦检查 [ErrorInfo],这将显示错误消息(如果有)。

同时检查 $mail->SMTPSecure = 'tls''ssl' 的开关值。

$sql="insert into landing_client_data(name,email,contact_no,company,ip,city,region,country,postal,utm_source,utm_medium,utm_term,utm_campaign,created_date) values('".$_POST['name']."', '".$_POST['email']."', '".$_POST['phone']."','".$_POST['company']."','".$ip."', '".$city."', '".$region."', '".$country."', '".$postal."', '".$utm_source."', '".$utm_medium."', '".$utm_term."', '".$utm_campaign."', '".$created_date."')";

$res=mysql_query($sql);

//**AFTER THIS I DON'T KNOW WHETHER ITS GOING INSIDE 'if($res)' OR NOT**

if($res){
require('PHPMailer-master/PHPMailerAutoload.php');
//SMTP class
require('PHPMailer-master/class.smtp.php');

$mail = new PHPMailer;
$mail->isSMTP();                                      
$mail->Host = 'smtp.gmail.com';                       
$mail->SMTPAuth = true;                               
$mail->Username = 'test.test6@gmail.com';            
$mail->Password = 'test@123';                        
$mail->SMTPSecure = 'tls';                            
$mail->Port = 587;

$mail->From = 'sachin@aarnasystems.com';
$mail->FromName = 'Sachin Patil CEO, Aarna Systems';                                      
$mail->setFrom('sachin@test.com', 'test');
$mail->addReplyTo('testhin@test.com', 'test'); 

$mail->WordWrap = 50;                             
$mail->isHTML(true);                              

$mail->Subject = 'Enquiry: Ecommerce Website Design-';
$mail->Body    = 'Enquiry Details:<br/>
Name: test<br/>
Email: test@testing.com<br/>
Phone: 00447<br/>
Company: het compnay<br/>';

print('<pre >');
print_r($mail);
print('</pre>');
exit;
//$mail->send();

// **NoT REACHING HERE**

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
$extra = '/portfolio_ln/thank-you.php';
//header("Location: http://$host$extra");
//exit;

如果对此有任何困惑,请告诉我。

谢谢!