php中利用PHPMailer插件實現gmail發送郵件
來源:程序員人生 發布時間:2013-10-15 13:50:15 閱讀次數:2418次
phpmailer是一個非常優秀的php第三方郵箱發送類函數,它支持幾乎所有國內外郵箱登錄發送功能,下面我們一起來看個php中利用PHPMailer插件實現gmail發送郵件實例,希望此教程對大家有幫助。
PHPMailer 是一個專門用于php語言的郵件發送類,功能十分地強大,豐富了 PHP 本身單一的 mail() 函數。支持 SMTP 等、附件等。 PHPMailer 遵守 LGPL 授權,可以免費下載。
下載地址:http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1/PHPMailer_v5.1.zip/download
使用方法(只說法郵件,其收郵件的功能飄過):代碼如下:
- IsSMTP();
- $mail->SMTPAuth = true;
- $mail->SMTPSecure = 'ssl';
- $mail->Port = 465 ;
- $mail->Username = "username@gmail.com";
- $mail->Password = "password";
- $mail->Host = 'smtp.gmail.com';
- $mail->IsHTML(true);
- $mail->From ='username@gmail.com';
- $mail->FromName = 'Mailer';
- $mail->Subject = '郵件標題';
- $mail->Body ='Hello world';
- $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]+:
- $host = $hostinfo[1];
- $port = $hostinfo[3];
- } else {
- $host = $hosts[$index];
- $port = $this->Port;
- }
幾經修改希望你也可以順利的通過gmail的smtp發送郵件了(當然要在win下面要能發郵件,還得在IIS中安裝smtp以及在php中有OpenSSL擴展的支持), 最后經測試,這種修改后能順利通過 126163qqgmailsinasohu的smtp發送郵件
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈