本文地址
参考地址
分享提纲:
1. 概述
立即学习“PHP免费学习笔记(深入)”;
2. 编写代码发送邮件
3. 参考文档
1. 概述
本文是讲利用邮件类库 PHPMailer来发送邮件方法。
我们在做project的时候常常需要邮件的功能。其实PHP语言自己已经有一个发送邮件的方法(mail()方法),且不说这个方法实现的功能很少,想要利用mail()方法来发送邮件就必须要自己配置好smtp服务器,这里就不讲mail()的使用方法了(函数调用确实很简单)。所以,我们推荐使用第二种方法:PHPMailer。
2. 编写代码发送邮件
1)【下载PHPMailer】
首先,先到http://phpmailer.sourceforge.net/这个地址去下载最新的PHPMailer的包(PHPMailer方法必须使用这个包,目前依托在 gitHub上)。
直接下载压缩包也行: https://github.com/wozhuzaisi/PHPMailer/archive/master.zip
2)【代码实现】
下载完成后解压到相应的目录。可以看到解压后的文件夹里面的class.phpmailer.php(调用PHPMailer需要包含这个文件)
示例代码:
<?<span style="color: #000000;">php
</span><span style="color: #008000;">//</span><span style="color: #008000;">1.【下载地址】PHPMailer下载地址:https://github.com/wozhuzaisi/PHPMailer/archive/master.zip
//2.【邮箱配置SMTP】本文实现的是 smtp协议的163邮箱发送。其他邮箱和协议请参考: http://blog.wpjam.com/m/gmail-qmail-163mail-imap-smtp-pop3/
//3.【文本编码】请保证 utf-8的文本编码,否则邮件会出现乱码
//4.【运行方式】 直接调用 smtp_mail()函数即可
//测试邮件
// 参数说明(收件人邮箱地址, 收件人姓名, 邮件主题, 邮件内容, 附加信息, 发送人用户名) </span>
smtp_mail("receiveUser@haodf.com", 'receiveUserName', "【标题】12.01 测试邮件", "【内容】测试邮件", "", <span style="color: #800080;">$fromUsername</span>="邮件发送人"<span style="color: #000000;">);
</span><span style="color: #0000ff;">echo</span> "<br>end<br>"<span style="color: #000000;"> ;
</span><span style="color: #0000ff;">function</span> smtp_mail( <span style="color: #800080;">$receiveEmailAddress</span>, <span style="color: #800080;">$receiveUserName</span>, <span style="color: #800080;">$subject</span>, <span style="color: #800080;">$body</span>, <span style="color: #800080;">$extraHdrs</span>='', <span style="color: #800080;">$fromUsername</span><span style="color: #000000;">){
</span><span style="color: #800080;">$path</span> = 'PHPMailer-master/'<span style="color: #000000;">;
</span><span style="color: #0000ff;">require_once</span>(<span style="color: #800080;">$path</span>."class.smtp.php"<span style="color: #000000;">);
</span><span style="color: #0000ff;">require</span>(<span style="color: #800080;">$path</span>."class.phpmailer.php"<span style="color: #000000;">);
</span><span style="color: #800080;">$mail</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> PHPMailer();
</span><span style="color: #800080;">$mail</span>->IsSMTP(); <span style="color: #008000;">//</span><span style="color: #008000;"> send via SMTP
//这里使用 163邮箱</span>
<span style="color: #800080;">$mail</span>->Host = "smtp.163.com"; <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP servers </span>
<span style="color: #800080;">$mail</span>->SMTPAuth = <span style="color: #0000ff;">true</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> turn on SMTP authentication </span>
<span style="color: #800080;">$mail</span>->Username = "yourEmailUserName"; <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP username 注意:普通邮件认证不需要加 @域名 这里是我的163邮箱</span>
<span style="color: #800080;">$mail</span>->Password = "yourEmailPassWord"; <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP password 在这里输入邮箱的密码</span>
<span style="color: #800080;">$mail</span>->From = <span style="color: #800080;">$fromMailAddress</span> = "yourName@163.com"; <span style="color: #008000;">//</span><span style="color: #008000;"> 发件人邮箱 </span>
<span style="color: #800080;">$mail</span>->FromName = <span style="color: #800080;">$fromUsername</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 发件人 </span>
<span style="color: #800080;">$mail</span>->CharSet = "UTF-8"; <span style="color: #008000;">//</span><span style="color: #008000;"> 这里指定字符集! 指定UTF-8后邮件的标题和发件人等等不会乱码,如果是GB2312标题会乱码</span>
<span style="color: #800080;">$mail</span>->Encoding = "base64"<span style="color: #000000;">;
</span><span style="color: #800080;">$mail</span>->AddAddress(<span style="color: #800080;">$receiveEmailAddress</span>, <span style="color: #800080;">$receiveUserName</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> 收件人邮箱和姓名 </span>
<span style="color: #800080;">$mail</span>->AddReplyTo(<span style="color: #800080;">$fromMailAddress</span>, <span style="color: #800080;">$fromUsername</span><span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">$mail->WordWrap = 50; // set word wrap 换行字数
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");
//$mail->IsHTML(true); // send as HTML
// 邮件主题 </span>
<span style="color: #800080;">$mail</span>->Subject = <span style="color: #800080;">$subject</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 邮件内容 </span>
<span style="color: #800080;">$mail</span>->Body = <span style="color: #800080;">$body</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">$mail->AltBody ="text/html"; </span>
<span style="color: #0000ff;">if</span>(!<span style="color: #800080;">$mail</span>-><span style="color: #000000;">Send())
{
</span><span style="color: #0000ff;">echo</span> "error <p>"<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "error: " . <span style="color: #800080;">$mail</span>-><span style="color: #000000;">ErrorInfo;
</span><span style="color: #0000ff;">exit</span><span style="color: #000000;">;
}
</span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {
</span><span style="color: #0000ff;">echo</span>"success!"<span style="color: #000000;">;
}
}
</span>
就是这些,欢迎批评指正
3. 参考文档
1)使用 PHPMailer 发送邮件
2)PHP发送邮件(PHPMailer) - FTD2012 - 博客园
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号