2
我有无尽的烦恼,同时试图使用PEAR邮件包裹发送邮件:PEAR邮件连接拒绝为smtp.gmail.com
我用我的本地机器用于测试目的的XAMPP和下面的代码完美的作品:
//PEAR
require_once('../PEAR/Mail.php');
$from = "<[email protected]>";
$to = "<[email protected]>";
$subject = "Hi";
$body = "Testing message";
$host = "ssl://smtp.gmail.com"; //ssl://
$port = "465";
$username = "[email protected]";
$password = "**********";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
function &factory($driver, $params = array())
{
$driver = strtolower($driver);
@include_once 'Mail/' . $driver . '.php';
$class = 'Mail_' . $driver;
if (class_exists($class)) {
$mailer = new $class($params);
return $mailer;
} else {
return PEAR::raiseError('Unable to find class for driver ' . $driver);
}
}
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
//end of php tag
然而,当我将文件上传到网上的Web服务器,并运行我收到以下错误完全相同的脚本:
“无法连接到SSL://smtp.gmail .com:465 [SMTP:无法连接套接字:拒绝连接(代码:-1,回复e:)]“
我也尝试过端口587和443无济于事。我猜这个问题必须存在于socket.php,smtp.php,mail.php或者甚至是服务器配置文件中,因为上面的代码似乎没有任何问题。如果有人能指出我正确的方向,我将非常感激!
为什么你在主机URL上有'ssl://'? – Treffynnon
连接被拒绝,某事主动拒绝允许连接。可能是谷歌,可能是防火墙的某个地方 - 但有些东西发回了一个数据包,说“没有办法,jose”。这不太可能是你的代码。可能您的ISP不允许连接到自己网络之外的邮件服务器(宽带isps倾向于将其用作反垃圾邮件措施)。 –
[从PHP页面使用GMail SMTP服务器发送电子邮件]的可能重复(http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page) – Treffynnon