在我的机器上发送邮件成功,但使用 phpmailer 使服务器失败
Posted
技术标签:
【中文标题】在我的机器上发送邮件成功,但使用 phpmailer 使服务器失败【英文标题】:sent mail succed on my machine but failed the server using phpmailer 【发布时间】:2013-06-13 04:45:36 【问题描述】:<?php
date_default_timezone_set('America/Toronto');
require_once('class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail = new PHPMailer();
$body = "gdssdh";
//$body = eregi_replace("[\]",'',$body);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "ssl://smtp.gmail.com"; // SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "myemail@gmail.com"; // GMAIL username
$mail->Password = "******"; // GMAIL password
$mail->SetFrom('mysent@gmail.com', 'PRSPS');
//$mail->AddReplyTo("user2@gmail.com', 'First Last");
$mail->Subject = "PRSPS password";
//$mail->AltBody = "To view the message, please use an html compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$address = "mymail@yahoo.co.in";
$mail->AddAddress($address, "user2");
//$mail->AddAttachment("images/phpmailer.gif"); // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send())
echo "Mailer Error: " . $mail->ErrorInfo;
else
echo "Message sent!";
当我在本地机器上运行脚本时,我得到了
CLIENT -> SMTP:EHLO localhost CLIENT -> SMTP:AUTH LOGIN CLIENT -> SMTP:cHV0aGVhLmh1b25nMjAxNEBnbWFpbC5jb20=客户端-> SMTP: UHV0aGVhMDEy 客户 -> SMTP:邮件来自:客户 -> SMTP:RCPT 至: 客户端 -> SMTP:数据客户端 -> SMTP:日期:2013 年 6 月 17 日星期一 04:25:49 -0400 CLIENT -> SMTP: Return-Path: CLIENT -> SMTP: To: user2 CLIENT -> SMTP: From: PRSPS CLIENT -> SMTP: Subject: PRSPS password CLIENT -> SMTP:消息 ID: 客户端 -> SMTP:X 优先级:3 客户端 -> SMTP:X-Mailer:PHPMailer 5.2.6 (https://github.com/PHPMailer/PHPMailer/) 客户端 -> SMTP: MIME 版本:1.0 CLIENT -> SMTP:内容类型:multipart/alternative; 客户端-> SMTP:边界 =“b1_405be3508111cd4789653ec34cdfba23”客户端 -> SMTP:内容传输编码:8 位客户端 -> SMTP:客户端 -> SMTP:--b1_405be3508111cd4789653ec34cdfba23 客户端 -> SMTP: 内容类型:文本/纯文本;字符集=iso-8859-1 客户端-> SMTP: 内容传输编码:8 位客户端 -> SMTP:客户端 -> SMTP:gdssdh 客户端-> SMTP:客户端-> SMTP:客户端-> SMTP: --b1_405be3508111cd4789653ec34cdfba23 客户端-> SMTP:内容类型:文本/html;字符集=iso-8859-1 客户端-> SMTP: 内容传输编码:8 位客户端 -> SMTP:客户端 -> SMTP:gdssdh 客户端-> SMTP:客户端-> SMTP:客户端-> SMTP:客户端-> SMTP: --b1_405be3508111cd4789653ec34cdfba23--客户端-> SMTP:客户端-> SMTP:。 CLIENT -> SMTP: 退出消息发送!
但是当我在主机上运行相同的脚本时
SMTP -> 错误:无法连接到服务器:连接尝试 失败,因为连接方没有正确响应后 一段时间,或建立连接失败,因为已连接 主机未能响应。 (10060)SMTP Connect() 失败。梅勒 错误:SMTP Connect() 失败。
你有什么办法解决这个问题吗?
提前致谢。
【问题讨论】:
您是否有防火墙阻止访问端口 465?你能在 smtp.google.com 上 telnet 到 465 吗? 如何在主机上查看? 如果您对主机有服务器访问权限(SSL 访问),您可以使用终端或 Putty 访问服务器,然后从该服务器测试 telnet 连接。一些主机还在帐户的管理页面中进行了防火墙设置。 你有一些测试 telnet 连接的技巧吗?什么可以或不可以?谢谢 我想答案取决于您是否拥有对主机帐户的 SSL 终端访问权限。如果有,您应该能够运行命令“telnet smtp.google.com 465”而不会出错。 【参考方案1】:您的主机可能对使用的端口设置了防火墙。尝试使用其他端口(具有其他安全性)设置或联系您的主机。
【讨论】:
真的可以用其他非标准端口访问smtp.gmail.com吗? 引用任何 Google 搜索结果 cavewall.jaguardesignstudio.com/2011/10/12/… :这是个问题,因为 Google Apps 电子邮件帐户在端口 465(用于 SSL)或 587 上使用 smtp.gmail.com b>(对于 TLS)。无法通过此 SMTP 服务器进行未加密发送。 还有另一个引用,用于非安全连接:google.com/support/a/bin/answer.py?hl=en&answer=176600 答案是将 smtp.gmail.com 设置替换为:服务器:aspmx.l.google .com 端口:25以上是关于在我的机器上发送邮件成功,但使用 phpmailer 使服务器失败的主要内容,如果未能解决你的问题,请参考以下文章