[英]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 设置。
我检查了您的代码,并希望错误的原因很少。
如果以上都解决了,请通过添加额外的行来修改代码,如下所示。
$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.