簡體   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