Heim  >  Artikel  >  php教程  >  php中利用PHPMailer插件实现gmail发送邮件

php中利用PHPMailer插件实现gmail发送邮件

WBOY
WBOYOriginal
2016-05-25 16:49:131252Durchsuche

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

使用方法(只说法邮件,其收邮件的功能飘过):代码如下:

<?php
IsSMTP();
$mail->SMTPAuth = true; //smtp要求身份验证
$mail->SMTPSecure = &#39;ssl&#39;; //smtp验证方式
$mail->Port = 465; //smtp端口号
$mail->Username = "username@gmail.com"; // 注册了的gmail用户邮箱(用你的gmail邮箱就可以)
$mail->Password = "password"; //密码
$mail->Host = &#39;smtp.gmail.com&#39;; // 发邮件的服务器
$mail->IsHTML(true); // 是否使支持 HTML 邮件的发送,默认为 false ,
$mail->From = &#39;username@gmail.com&#39;; // 发信人的邮箱,用你的gmail邮箱就可以
$mail->FromName = &#39;Mailer&#39;; // 你的姓名
$mail->Subject = &#39;邮件标题&#39;; // 邮件标题
$mail->Body = &#39;Hello world&#39;; // 邮件内容,支持HTML代码
$mail->AddAddress(&#39;name@anydomain.com&#39;, &#39;First Last&#39;); // 收件人邮箱和姓名
if (!$mail->Send()) {
    echo $mail->ErrorInfo;
}
?>

本来一般是照上面的配置就可以通过指定的smtp服务器发送邮件了,但是经个人测试上面的设置只能用163,126的smtp发送邮件,像qq,gmail等都发送不出去! 在google上搜了N久,终于找到了下面的方法可以成功通过gmail发送邮件了,当然还包括:qq、sina、sohu等(雅虎的不能通过,貌似雅虎默认smtp没有开通,得开通他们的一个叫‘邮件提醒’功能才给你开通smtp/pop3)

下面是解决方法:只需要在 class.phpmailer.php 中查找到下面的代码(可能由于下载的版本不同而稍微有点区别),代码如下:

<?php
if (eregi(&#39;^(.+):([0-9]+)$&#39;, $hosts[$index], $hostinfo)) {
    $host = $hostinfo[1];
    $port = $hostinfo[2];
} else {
    $host = $hosts[$index];
    $port = $this->Port;
}
?>

更改为( 不任什么版本都改成下面的内容):

<?php
if (eregi(&#39;^#(([a-z]+://)?[^:]+):(d+)#i&#39;, $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发送邮件

教程网址:

欢迎收藏∩_∩但请保留本文链接。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn