phpmailer是一個非常優秀的php第三方郵箱發送類函數,它支持幾乎所有國內外郵箱登錄發送功能,下面我們一起來看個php中利用PHPMailer插件實現gmail發送郵件實例,希望此教程對大家有幫助。
PHPMailer 是一個專門用于php語言的郵件發送類,功能十分地強大,豐富了 PHP 本身單一的 mail() 函數。支持 SMTP 等、附件等。 PHPMailer 遵守 LGPL 授權,可以免費下載。
使用方法(只說法郵件,其收郵件的功能飄過):代碼如下:
- IsSMTP();
- $mail->SMTPAuth = true; //smtp要求身份驗證
- $mail->SMTPSecure = 'ssl'; //smtp驗證方式
- $mail->Port = 465 ; //smtp端口號
- $mail->Username = "username@gmail.com"; // 注冊了的gmail用戶郵箱(用你的gmail郵箱就可以)
- $mail->Password = "password"; //密碼
- $mail->Host = 'smtp.gmail.com'; // 發郵件的服務器
- $mail->IsHTML(true); // 是否使支持 HTML 郵件的發送,默認為 false ,
- $mail->From ='username@gmail.com'; // 發信人的郵箱,用你的gmail郵箱就可以
- $mail->FromName = 'Mailer'; // 你的姓名
- $mail->Subject = '郵件標題'; // 郵件標題
- $mail->Body ='Hello world'; // 郵件內容,支持HTML代碼
- $mail->AddAddress('name@anydomain.com', 'First Last'); // 收件人郵箱和姓名
- if (!$mail->Send()) {
- echo $mail->ErrorInfo;
- }
本來一般是照上面的配置就可以通過指定的smtp服務器發送郵件了,但是經個人測試上面的設置只能用163,126的smtp發送郵件,像qq,gmail等都發送不出去! 在google上搜了N久,終于找到了下面的方法可以成功通過gmail發送郵件了,當然還包括:qq、sina、sohu等(雅虎的不能通過,貌似雅虎默認smtp沒有開通,得開通他們的一個叫‘郵件提醒’功能才給你開通smtp/pop3)
下面是解決方法:只需要在 class.phpmailer.php 中查找到下面的代碼(可能由于下載的版本不同而稍微有點區別),代碼如下:
- if(eregi(’^(.+):([0-9]+)$‘, $hosts[$index], $hostinfo)) {
- $host = $hostinfo[1];
- $port = $hostinfo[2];
- } else {
- $host = $hosts[$index];
- $port = $this->Port;
- }
更改為( 不任什么版本都改成下面的內容):
- if(eregi(’^#(([a-z]+://)?[^:]+):(d+)#i‘, $hosts[$index], $hostinfo)) {
- $host = $hostinfo[1];
- $port = $hostinfo[3];
- } else {
- $host = $hosts[$index];
- $port = $this->Port;
- }
幾經修改希望你也可以順利的通過gmail的smtp發送郵件了(當然要在win下面要能發郵件,還得在IIS中安裝smtp以及在php中有OpenSSL擴展的支持), 最后經測試,這種修改后能順利通過 126163qqgmailsinasohu的smtp發送郵件
新聞熱點
疑難解答