Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从主机服务器发送电子邮件时出现连接错误_Php - Fatal编程技术网

Php 从主机服务器发送电子邮件时出现连接错误

Php 从主机服务器发送电子邮件时出现连接错误,php,Php,我已经用php创建了一个web应用程序。我正在使用PHP Mailer 5.20类。当我在本地服务器上使用XAMPP服务器时,它可以正常工作,但当我们在web服务器上托管它并尝试发送电子邮件时,它会返回一个错误,我在下面向您显示错误 SMTP->错误:无法连接到服务器:连接超时(110) SMTP错误:无法连接到SMTP主机 我尝试了所有配置并检查了所有配置,但在屏幕上收到了相同的错误 下面是我的PHP邮件类 <?php require("PHPMailer_5.2.0/class.p

我已经用php创建了一个web应用程序。我正在使用PHP Mailer 5.20类。当我在本地服务器上使用XAMPP服务器时,它可以正常工作,但当我们在web服务器上托管它并尝试发送电子邮件时,它会返回一个错误,我在下面向您显示错误

SMTP->错误:无法连接到服务器:连接超时(110) SMTP错误:无法连接到SMTP主机

我尝试了所有配置并检查了所有配置,但在屏幕上收到了相同的错误

下面是我的PHP邮件类

<?php   require("PHPMailer_5.2.0/class.phpmailer.php");

function send_email($tomail,$message,$subject)
{
//$dbObj = new Database();
//$dbObj->connect_db();
$mail = new PHPMailer();

$mail->IsSMTP();
$mail->Host = "smtp.mail.yahoo.com";  // specify main and backup server
$mail->SMTPAuth = true;     // turn on SMTP authentication

/////////////////////////////////( USER NAME AND PASSWORD )///////////////////////////// 
 $email = "xyxxxxx@yahoo.in";
$mail->Username = $email;  // SMTP username
$mail->Password ="xxxxxx"; // SMTP password


$mail->From = $email;
$mail->AddAddress($tomail, $tomail);

// set word wrap to 50 characters
$mail->WordWrap = 50;
// set email format to HTML
$mail->IsHTML(true);

$mail->Subject = $subject;
$mail->Body    = $message;
$mail->AltBody =$message;
$mail->Subject =  $subject;

$mail->FromName ="xyz (Online Booking Info)";

if(!$mail->Send())
{ $rr= $mail->ErrorInfo;
    exit;

}


 }

?>


有人能告诉我哪里错了或配置不正确吗?

我不知道PHPMailer,但您报告的内容听起来更像是网络问题。检查您是否可以使用telnet连接到smtp端口的smtp服务器。如果可以,您可以继续使用包嗅探器(如tcpdump或wireshark)来控制该类实际要连接到的位置。您可以telnet主机吗?使用此命令“telnet smtp.mail.yahoo.com 25”,它应该返回以下内容:“Connected to smtp.mail.eu.am0.yahoodns.net.Escape字符为“^]”。220 smtp127.mail.ird.yahoo.com ESMTP“很可能,主机服务器上的端口25或26被阻止。+1@Dr.Dan-大多数主机提供商阻止TCP:25上的传出连接,这是正确的。在这种情况下,他们通常会提供一个智能主机,您可以通过它进行中继,并与您的主机提供商交谈。