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