繁体   English   中英

smtp 在 php 中不起作用 - Godaddy 托管服务

[英]smtp is not working in php - Godaddy hosting service

我正在尝试使用 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 设置。

我检查了您的代码,并希望错误的原因很少。

  1. 端口号/主机声明错误
  2. SMTP 类不可用。

如果以上都解决了,请通过添加额外的行来修改代码,如下所示。

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

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

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

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

特别是你告诉你使用的是godaddy托管,根据这个问题,将你的主机配置更改为

$mail->Host = localhost;

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

GoDaddy 会阻止所有传出 SMTP 连接,但它们自己的除外。

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

首先包含include("PHPMailerAutoload.php"); 和 PHPmailerAutoload.php 将加载一个你需要的类,在你的例子中是 class.smtp.php。

include("PHPMailerAutoload.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->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "box###.bluehost.com"; // sets the SMTP server
$mail->Port = 465; // set the SMTP port

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

@vipulsharma,很简单,您无需将主机 url 直接提到“relay-hosting.secureserver.net”,因为您使用的是共享主机,因此您只需将主机目的地指向您的 localhost 文件夹。 对于共享主机,GoDaddy 已经在内部配置了主机设置。 在您的代码中进行以下更改。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM