我有一個問題,我一直在努力約一個星期,無法找到答案。作爲這一切的前言,我在網上搜索了各種各樣的東西。這個問題有很多答案,但似乎沒有人幫助我。使用Gmail SMTP與PHP發送電子郵件
我對PHP有點新鮮,以及我所要求的很多東西(過去幾個月一直在使用它)。讓我來解決問題的基礎:
我在一個學校網絡上,在我的宿舍裏設置了自己的服務器。我正在創建一個網站,我需要驗證用戶的電子郵件,但基本的PHP郵件()函數不起作用。我被告知我需要使用SMTP。所以我決定使用Gmail SMTP最簡單,最便宜的方式。出於這個原因,我在Gmail上創建了一個名爲[email protected]的帳戶。這是代碼。
echo "starting mail sending";
require_once("pear/share/pear/Mail.php");
echo "1";
$from = "PersonA `<[email protected]`>"; $to = "`<[email protected]`>"; $subject = "Activate your account"; $body = "Hey";
$host = "ssl://smtp.gmail.com"; $port = "465"; //also tried 587 $username = "[email protected]"; $password = "password";
echo "2";
$headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject);
echo "3";
$mailer_params['host'] = $host; $mailer_params['port'] = $port; $mailer_params['auth'] = true; $mailer_params['username'] = $username; $mailer_params['password'] = $password;
$smtp = Mail::factory('smtp', $mailer_params);
echo "4";
error_reporting(E_ALL);
echo "5";
if (PEAR::isError($smtp)) { die("Error : " . $smtp->getMessage()); }
echo "6";
$mail = $smtp->send($to, $headers, $body) or die("Something bad happened");
echo "7";
if (PEAR::isError($mail)) {echo($mail->getMessage();} else {echo(Message successfully sent!);}
echo "mail sent hopefully.";
所以基本上代碼只是停止在該行:
$mail = $smtp->send($to, %headers, $);
我曾嘗試印刷錯誤,但我不知道現在該怎麼辦。任何提示和幫助表示讚賞。謝謝!!
是的,這是愚蠢的我。反正,我在哪裏得到sasl.php文件?只有您鏈接的頁面上包含smtp.php。或者它已經在我的服務器上了?我啓用了SASL,並使用Ubuntu教程爲我的後綴服務器啓用SMTP和SASL授權。謝謝! – ingshtrom 2011-04-25 01:57:13
SASL包的鏈接位於該頁面的某處。以下是直接鏈接:http://www.phpclasses.org/package/1888-PHP-Single-API-for-standard-authentication-mechanisms。html – Jorj 2011-05-12 11:51:31