Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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连接到SMTP服务器失败_Php_Smtp_Phpmailer - Fatal编程技术网

通过PHP连接到SMTP服务器失败

通过PHP连接到SMTP服务器失败,php,smtp,phpmailer,Php,Smtp,Phpmailer,我有一个网站,我已经将其中一个页面编程为连接到SMTP向客户发送电子邮件。当我将文件上载到主机时,问题就开始了,然后主机将无法连接,并显示一个错误SMTP错误:连接超时 在localhost上,代码工作正常,并在实例中成功连接。我是否需要在代码或主机设置中进行更改以使其正常工作 使用PHPMailer,以下是我的连接变量(不包括主题、主体等): 当我将文件上载到主机时,问题开始出现 为什么您认为上传文件会影响邮件服务器的连接 $mail->SMTPOptions=array('ssl'=>arr

我有一个网站,我已经将其中一个页面编程为连接到SMTP向客户发送电子邮件。当我将文件上载到主机时,问题就开始了,然后主机将无法连接,并显示一个错误
SMTP错误:连接超时

在localhost上,代码工作正常,并在实例中成功连接。我是否需要在代码或主机设置中进行更改以使其正常工作

使用PHPMailer,以下是我的连接变量(不包括主题、主体等):

当我将文件上载到主机时,问题开始出现

为什么您认为上传文件会影响邮件服务器的连接

$mail->SMTPOptions=array('ssl'=>array('verify_peer'=>false))

那不是个好主意

我是否需要在代码或主机设置中进行更改以使其正常工作

如果您更改了代码、主机设置或主机所在的网络基础设施中的某些内容,那么它可能会开始工作(请参见注释1),但由于您只告诉了我们(部分)代码,我们无法猜测可能是什么

面向internet的主机在其功能上受到限制并不少见,这可能受到路由、防火墙、DNS可用性和权限的限制。这些是您应该检查的内容(或与管理主机的人员交谈)


注1:为了方便以后的读者,您可能还需要在邮件服务器上更改某些内容,但如果代码在其他主机上运行时的行为与预期一致,则此处可能不适用)

您遇到了连接超时问题。这很可能是因为您的配置中存在错误,阻止了您的代码连接到google smtp服务器

首先确保您使用的是最新版本的PHPMailer。进一步处理有问题的代码

请按照以下更新进行调试并解决此问题

$mail->SMTPDebug = 2;                                 // Enable verbose debug output
$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication;
$mail->Username = 'email@gmail.com';                 // SMTP username
$mail->Password = 'mypassword';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to`
`$mail->AuthType='LOGIN' $mail->SMTPOptions=array('ssl'=>array('verify_peer'=>false))` 我相信,如果您尝试使用已编辑的代码块,应该会得到积极的结果

为了进一步明确这一点,您可能希望查看他们(PHPMailer)的实际文档


希望,这有帮助

OP表示他已经使用了PHPmailer,这是一个连接问题,而不是libraby问题IMHO。是的,我已经在使用PHPmailer,它在本地主机上运行良好,但在我购买的主机上没有。连接超时。您的“主机”是否允许外部连接从其服务器发起并转到其他服务器?有些人不允许这样做。您的主机提供商可能有一个允许您连接的SMTP服务器,该服务器是他们内部的。@我也尝试连接到他们自己的SMTP服务器,同样的问题。我联系了他们,他们说他们这边没有问题。。
$mail->SMTPSecure = 'tls';
$mail->Port = 587; 
$mail->SMTPDebug = 2;                                 // Enable verbose debug output
$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication;
$mail->Username = 'email@gmail.com';                 // SMTP username
$mail->Password = 'mypassword';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to`