发送邮件时php中的SMTP connect()失败错误

发送邮件时php中的SMTP connect()失败错误,php,email,smtp,gmail,Php,Email,Smtp,Gmail,提交表单时,我正在尝试向用户发送邮件。我在本地主机和服务器上都有相同的代码,这两个服务器都运行在ubuntu上。在我的本地主机上,当SMTP connect()在我的服务器中正常工作时失败,这表明本地计算机上的php/SMTP设置配置错误,但我不知道是什么原因。下面是我在本地计算机上得到的错误转储 2014-04-27 18:04:40 CLIENT -> SERVER: EHLO localhost 2014-04-27 18:04:41 SMTP ERROR: EHLO com

提交表单时,我正在尝试向用户发送邮件。我在本地主机和服务器上都有相同的代码,这两个服务器都运行在ubuntu上。在我的本地主机上,当SMTP connect()在我的服务器中正常工作时失败,这表明本地计算机上的php/SMTP设置配置错误,但我不知道是什么原因。下面是我在本地计算机上得到的错误转储

2014-04-27 18:04:40 CLIENT -> SERVER: EHLO localhost 2014-04-27 18:04:41    
SMTP ERROR: EHLO command failed: 220 mx.google.com ESMTP yv5sm29656409pbb.49 - gsmtp 2014-04-27 18:04:41    CLIENT -> SERVER: HELO localhost 2014-04-27 18:04:41    
SMTP ERROR: HELO command failed: 552 Command sent before response recieved. 2014-04-27 18:04:41 CLIENT -> SERVER: STARTTLS 2014-04-27 18:04:41  
SMTP ERROR: STARTTLS command failed: 2014-04-27 18:04:41    
SMTP NOTICE: EOF caught while checking if connected 
SMTP connect() failed. Message could not be sent.Mailer Error: SMTP connect() failed.
下面是我的html代码

<html>

<body>

<section class="stats" id="signup">
<div class="container" >


    <form action="index.php" method="post"  class="subscription wow fadeInLeft animated" data-wow-offset="30" data-wow-duration="1.5s" data-wow-delay="0.15s" role="form">
        <input type="email" placeholder="Enter email" class="form-control input-box" name="email_address">
        <button class="btn btn-primary custom-button red-btn">Sign Up</button>
    </form>


</div> 
</section> 



<?php



if(!isset($_POST['email_address']) || trim($_POST['email_address']) == '')
{

} else {

require '/usr/share/php5/PHPMailer/PHPMailerAutoload.php';

$mail = new PHPMailer;
$mail->SMTPDebug = 1;
$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'team@compamy.com';                            // SMTP username
$mail->Password = '<password>';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted

$mail->From = 'team@compamy.com';
$mail->FromName = 'Team Scaleqa';
$mail->addAddress($_POST['email_address'], '');  // Add a recipient
$mail->addAddress('team@compamy.com');               // Name is optional
$mail->addReplyTo('team@compamy.com', 'Team Scaleqa');
$mail->addCC('team@compamy.com');
$mail->addBCC('team@compamy.com');



$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Welcome to Company';
$pos = strpos( $_POST['email_address'], "@");

$username = substr($_POST['email_address'], 0, $pos);
$mail->Body = "
    Hi 
    ";
//echo $mail->Body;
//$mail->Body    = clone $message;
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
    if(!$mail->send()) {
       echo 'Message could not be sent.';
       echo 'Mailer Error: ' . $mail->ErrorInfo;
       exit;
    }

    echo 'Message has been sent';
}

?>

</body>
</html>

注册

GMail有强大的垃圾邮件过滤器。其中一个会检查发件人是否是有效的MTA。在EHLO问候语中,您使用“localhost”,这不是常规服务器所能做到的。即使此脚本从服务器上运行,GMail也会运行反向DNS查找,以确保您的域与服务器的IP相对应,否则会被归类为垃圾邮件。

有没有办法在本地主机上运行此脚本?否则发展对我来说可能会很困难。我不知道,也许有。出于测试目的,考虑在gmail以外的服务器上进行测试。我想我也有同样的问题。奇怪的是,如果我尝试使用我的一个谷歌应用程序电子邮件帐户,它就会工作。我不知道现在该怎么办。。。