smtp无法在php中运行 - Godaddy托管服务

时间:2015-09-19 11:56:28

标签: php smtp

我正在尝试使用php-mailer-class,但却遇到了不同的问题。

请查看我的代码。

include ("class.phpmailer.php");

$mail = new PHPMailer();  // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug =1;  // debugging: 1 = errors and messages, 2 = messages only
//$mail->SMTPAuth = true;  // authentication enabled

$mail->Host = 'relay-hosting.secureserver.net';
$mail->Port = 25;
$mail->Username = "admin@****.in"; 
$mail->Password = "******";          
$mail->SetFrom('*****0014@gmail.com', 'User name');
$mail->Subject = 'mailing';
$mail->Body = "<b>Hi, your e- mail has been received.</b>";
$mail->AddAddress("*****0014@gmail.com");
if(!$mail->Send()) {
   $error = 'Mail error: '.$mail->ErrorInfo;
   return false;
} else {
$error = 'Message sent!';
   return true;
}

错误 - :

SMTP -> ERROR: EHLO not accepted from server: 
SMTP -> ERROR: HELO not accepted from server: 
SMTP -> NOTICE: EOF caught while checking if connectedThe following From address failed: *****0014@gmail.com

如果我使用的是Gamil设置,此代码运行良好不使用godaddy SMTP设置。

3 个答案:

答案 0 :(得分:1)

我检查了你的代码,并且预计错误的原因很少。

  1. 端口号/主机声明错误
  2. SMTP类不可用。
  3. 如果以上两者都解决了,请通过添加额外的行来修改代码,如下所示。

    $mail->Host = 'relay-hosting.secureserver.net';
    $mail->Port = 25;
    $mail->SMTPAuth   = true; 
    

    这在我的服务器中运行良好。

    THIS问题,它描述了共享主机中SSL SMTP连接的服务器阻止。因此,让邮件程序使用TLS,这样做,更改端口号和SMTP模式。

    $mail->SMTPSecure = "tls";
    $mail->Port = 587;
    

    具体而言,根据This问题,您告诉您正在使用godaddy托管,将主机配置更改为

    $mail->Host = localhost;
    

答案 1 :(得分:1)

为时已晚,但对其他人有帮助。

GoDaddy阻止除其自身外的所有传出SMTP连接。

致电GoDaddy,要求他们在服务器上添加SMTP中继(例如gmail smtp.gmail.com)。

答案 2 :(得分:0)

@ vipulsharma,很简单,您不需要直接向“relay-hosting.secureserver.net”提及主机网址,因为您使用的是共享主机,因此您必须将主机目标指向您的localhost文件夹。对于共享主机,GoDaddy已在内部配置主机设置。更改代码中的以下更改。

$mail->Host= 'localhost';
$mail->ssl=false;
$mail->authentication=false;
$mail->Port=25;