| 
       phpmailer是一个非常优秀的php第三方邮箱发送类函数,它支持几乎所有国内外邮箱登录发送功能,下面我们一起来看个php中利用PHPMailer插件实现gmail发送邮件实例,希望此教程对大家有帮助。 
PHPMailer 是一个专门用于php语言的邮件发送类,功能十分地强大,丰富了 PHP 本身单一的 mail() 函数。支持 SMTP 等、附件等。 PHPMailer 遵守 LGPL 授权,可以免费下载。 
下载地址: 
使用方法(只说法邮件,其收邮件的功能飘过):代码如下: 
	
	- 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发送邮件 
      
      (责任编辑:admin) |