`
kaindy7633
  • 浏览: 80355 次
  • 性别: Icon_minigender_1
  • 来自: 绵阳
社区版块
存档分类
最新评论

【转】PHPMailer 类综合应用

    博客分类:
  • PHP
阅读更多

PHPMailer 类综合应用

PHPMailer 是一个专门用于 语言的邮件发送类,功能十分地强大,丰富了 PHP 本身单一的 mail() 函数。支持 SMTP 等甚至于附件。

PHPMailer 遵守 LGPL 授权,可以免费下载,当前版本是PHPMailer v2.0.0 rc2 更新于2007 年11月16日。

注: 下载时有后缀分别为 .tar.gz 和 .zip 之分,其实它们包含的文件都是一样的,只是压缩格式不同,.tar.gz 经过了双重压缩,文件更小罢了,WinRAR 软件能正确地解压这两种格式。

◆使用:

☆前注: 解 压后,文件包中会有一个 examples 文件夹,里面有“pop3_before_smtp_test.php” 和 “test1.php” 两个文件。其中第一个文件是教授基本的使用方法(见下),而 “test1.php” 则主要介绍了一些新增的特性,这些都在同文件夹下的“index.html” 作出了详细的说明,另一个文件“contents.html” 则是邮件内容,以后可以替换为邮件模版,用以增加邮件的规范化和丰富化。

☆基本方法:pop3_before_smtp_test.php

<?php
require ‘class.phpmailer.php’;
require ‘class.pop3.php’;

$pop = new POP3();
// 建立,收邮件

$pop->Authorise(’pop3.example.com’, 110, 30, ‘mailer’, ‘password’, 1);
// 设置收邮件的用户信息

// pop3.example.com:改写成邮箱的 pop3 服务器
// 例如,163 为 pop3.163.com
// mailer:用户名
// password:密码

$mail = new PHPMailer();
// 建立对象,发邮件,如果仅仅是发邮件可以去掉上面
// pop3 部份以及对 class.pop3.php 的包含

$mail->IsSMTP();
// 不变

$mail->SMTPDebug = 2;

$mail->IsHTML(true);
// 是否使支持 邮件的发送,默认为 false ,
// 为了方便后面使用“邮件模版”,我们把它改为 true

$mail->Host = ‘relay.example.com’;
// 发邮件的服务器
// 例如,163邮箱 为 smtp.163.com

$mail->From = ‘mailer@example.com’;
// 你的邮箱

$mail->FromName = ‘Example Mailer’;
// 你的姓名

$mail->Subject = ‘My subject’;
// 邮件标题

$mail->Body = ‘Hello world’;
// 邮件内容,这里可以使用新特性调用邮件模版,具体详情看后面。

$mail->AddAddress(’name@anydomain.com’, ‘First Last’);
// 收件人邮箱和姓名

if (!$mail->Send())
{
echo $mail->ErrorInfo;
}
?>

◆新增特性-邮件模版:test1.php

☆前注: 新增特性就单从 test1.php 来看主要是增加了对邮件模版的支持,可以将以下添加到上面就可以实现邮件模版功能了。

……省略部分代码……

$body = $mail->getFile(’contents.html’);
// 调用邮件模版

$body = eregi_replace(”[\]”,”,$body);
// 替换内容,例如邮件中的姓名及称谓

$subject = eregi_replace(”[\]”,”,$subject);
// 替换主题,必要的时候上面都可以做一些针对性修改

……省略部分代码……

◆特注:

(1)注意事项:
getFile()函数内部使用了fopen()函数来实现对文件的调用,函数中设置了能调用的最大文件为 1M,所以不能调用大于 1M 的文件,调用的文件既可以是本地文件也可以是远程文件,PHPMailer 中的全部方法请参考这里

(2)文件的填写方法:

第一行为 UNIX 系统使用,即是相对地址;第二行是 系列系统的用法,即是绝对地址;第三、四行则为 URL 的使用范例,即网络地址,这些规范同样适用于上面的 getFile() 函数。
<?
$fp = fopen(”/home/rasmus/file.txt”, “rb”);
$fp = fopen(”c:\\mydata\\info.txt”, “rb”);
$fp = fopen(”http://www.php.net/”, “rb”);
$fp = fopen(”ftp://user:password@my.com/”, “w”);
?>
(3)emegi_replace(”$var1″,”$var2″,$var3)函数:
emegi_replace(”$var1″,”$var2″,$var3) 函数跟 emeg_replace() 函数功能上差不多,都是在 $var3 中查找 $var1 并将其替换为 $var2 ,不同的是 eregi_replace() 函数不区分大小写。更多资料参考这里

(4)针对 Gmail 的 ssl 加密链接:
前两天才搞定的企业邮局 就是为了用来进行 Email 的发送,不过 ssl 加密的 Gmail 并不能简单地使用上面的方法解决,大家可以看看下面这些文章,在文章中提到了解决方法,不过我还没来得及做实验验证!
———-Update 2007.12.1———-
在新版的 PHPMailer 中实现 Gmail 发邮件,只需要在 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;
}

就可以了,有变化的地方做了加粗与倾斜显示。

使用方法:
……
$mail->Host = “ssl://smtp.gmail.com:465″;   // SMTP servers
……

Gmail 的端口号为 465 ,这种修改方法同时支持原有方法,即如果是163,则可以使用以下方法:
……
$mail->Host = “smtp.163.com”;   // SMTP servers
……

———-End Update ———-

阅读文章:PHPMailer con GMail
阅读文章:让phpmailer支持gmail发送邮件
阅读文章:终于能够通过phpmailer使用gmail账号发送邮件了

(5)邮件模版下载:
网上流传甚广的30套邮件模版 直接下载 ,挺不错的,在国内 126,163,QQ 这些邮箱中经测试表现都很正常,在 Gmail 中显示不正确, HotMail 未测试。

(6)成功发送邮件后却发现是乱码,怎么办呢?
PHPMailer 使用的字符集为 iso-8859-1,这个字符集并不能准确的显示中文,修改办法是给前面的程序增加一行代码,将字符集指定为 UTF-8:

$mail->CharSet = “UTF-8″; // 这里指定字符集!

为了保险,我们再修改 class.phpmailer.php 文件,找到第 50 行,将

var $CharSet = ‘iso-8859-1′;

修改为:

var $CharSet = ‘UTF-8′;

经测试,这种修改后均能在 126\163\qq\gmail 中正确显示。

分享到:
评论

相关推荐

    phpmailer.tar.gz

    综合以上信息,我们可以了解到这个压缩包提供了一个修改过的PHPMailer版本,适用于ThinkPHP框架,并且支持通过QQ邮箱发送邮件,对于需要在PHP Web应用中实现邮件发送功能的开发者来说是一个实用的资源。开发者可以...

    简洁PHP应用框架

    框架主程序简洁轻便,路径解析简单,框架模板为SMARTY,并集各常用函数、分页、图片上传综合处理、数据库表数据导入导出、静态页面生成、基于MemCache的缓存类、基于phpmailer的邮件收发类等类于一体,方便扩展。...

    基于PHP的企业办公管理系统

    1. `class.phpmailer.php`:PHPMailer是一个流行的PHP邮件处理库,用于发送邮件,可能被用在系统的通知和通信功能上。 2. `datetime.php`:可能包含日期和时间处理的自定义类或函数,对于日程管理和任务提醒至关...

    基于PHP的魔众Markdownphp管理系统源码.zip

    4. **框架和库**:PHP有众多框架如Laravel、Symfony、CodeIgniter等,以及丰富的函数库,如PHPMailer用于邮件发送,GD库用于图像处理等。 5. **安全性**:PHP提供了安全功能,如过滤输入数据、防止SQL注入、XSS防护...

    PHP常用功能和资料

    PHP可以使用内置的mail()函数或第三方库如PHPMailer来发送电子邮件。这个实例可能涵盖了如何设置邮件头、添加附件、使用SMTP服务器发送邮件等内容。理解这个功能可以帮助你实现通知系统、注册确认邮件等常见的业务...

    PHP form contact

    - **PHPMailer**:在PHP中发送邮件,可以直接使用`mail()`函数,但更推荐使用第三方库如PHPMailer,它提供了更丰富的功能和错误处理机制。 - **SMTP配置**:PHPMailer支持SMTP协议,允许通过SMTP服务器发送邮件,...

    基于PHP的邮件列表 list 多国语言版.zip

    2. 邮件处理:在PHP中,可以使用内置的mail()函数或者第三方库(如PHPMailer或SwiftMailer)来发送电子邮件。理解如何设置邮件头、添加附件以及处理SMTP服务器连接是邮件发送的核心技能。 3. 数据库交互:邮件列表...

    QQ机器人网页版源码

    - `class.smtp.php`:SMTP(Simple Mail Transfer Protocol)类,配合PHPMailer使用,用于通过SMTP服务器发送邮件。 - `httplib.class.php`:可能是HTTP客户端类,用于发送HTTP请求,比如与QQ API进行交互。 - `...

    PHP课程设计——兼职网

    你可能需要学习和使用PHP的内置函数、类库,如PDO(PHP Data Objects)进行数据库操作,使用PHPMailer发送邮件通知,以及使用PHP的错误处理机制确保程序的健壮性。此外,你还可以运用MVC(Model-View-Controller)...

    php使用技巧 (如mail等常用技巧)

    - 对于复杂的邮件格式,如HTML或带有附件,可能需要使用PHPMailer或SwiftMailer这样的库来提供更全面的功能和错误处理。 3. PHP实际例子: 资源中的"phpshiyongjiqiaoj.chm"可能包含了各种PHP使用技巧的实际例子。...

    基于PHP的法旅新媒体.zip

    在实际的项目中,压缩包内的文件通常会包含如index.php(入口文件)、config.php(配置文件)、database.php(数据库连接文件)、css和js文件夹(样式表和脚本文件)、images文件夹(图片资源)、phpmailer(邮件...

    flash发送图片到PHP并保存

    综上所述,这个过程涵盖了客户端与服务器的交互、服务器端处理、图片处理、文件存储、邮件服务等多个环节,是Web开发中一个典型的综合应用场景。在实际操作中,每个环节都需要根据项目需求和安全标准进行细致的设计...

    基于PHP的赛腾中小学校学生网络评教系统php版源码.zip

    6. **库文件(libraries)**:包含自定义函数或第三方库,如PHPMailer用于发送邮件,PDO用于数据库操作等。 7. **公共文件(includes)**:包含常被多个页面引用的头部、底部等模板。 8. **数据库脚本(sql)**:...

    短信通知插件

    - **phpmailer**:这是一个流行的PHP邮件发送库,可能被用来辅助实现邮件通知功能,或者与短信服务提供商的API通信。 综合来看,这个“短信通知插件”旨在提供一个便捷的工具,帮助PHP开发者快速为他们的应用添加...

    基于php响应式房屋置业网站.zip

    6. **框架和库**:如jQuery、PHPMailer等,提供额外的功能支持。 7. **模板文件**:用于生成动态页面内容,如房源详情页、搜索结果页等。 8. **脚本和批处理**:可能包含用于备份、维护或自动化任务的脚本。 在实际...

    PHP邮件收发系统

    然而,`mail()`函数在某些主机环境中可能受限,因此,开发者经常使用第三方库如PHPMailer或SwiftMailer,它们提供更丰富的功能,如SMTP服务器支持、HTML邮件格式化、附件处理等。 接收邮件则涉及IMAP(Internet ...

    PHP实例开发源码—php多多在线报名系统 免费版.zip

    PHP可以使用mail()函数或第三方库如PHPMailer来实现这一功能。 9. 响应式设计:考虑到不同设备的屏幕尺寸和浏览器兼容性,报名系统的前端设计应采用响应式布局,确保在手机、平板和桌面设备上都能正常工作。 10. ...

    Send-mail:您的私人电子邮件应用

    PHP中的`mail()`函数或第三方库如PHPMailer、SwiftMailer等可以用来实现SMTP通信,帮助程序发送邮件。这些库提供了更高级的功能,如错误处理、附件支持、HTML邮件以及SSL/TLS加密,确保邮件传输的安全性。 用户界面...

    0319PHP垃圾评论信息识别.rar

    代码中可能会使用到常见的PHP库,如PHPMailer用于邮件发送,或者PHP-ML这样的机器学习库用于训练模型。开发者可能通过关键词匹配、模式识别、情感分析等方法来判断评论是否为垃圾信息。 总的来说,这个项目涵盖了...

    邮件发送程序

    通过以上分析,我们可以看出【邮件发送程序】是一个集成了前端交互、后端逻辑、网络通信、数据存储和安全管理等多个方面的综合性应用。其源代码`mailOnline`很可能包含了实现这些功能的PHP脚本文件、前端资源文件、...

Global site tag (gtag.js) - Google Analytics