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