phpmailer发送邮件的使用方法
来源:原创
时间:2016-11-04
作者:脚本小站
分类:PHP
php发送邮件插件phpmailer
PHPmailer的git下载地址 https://github.com/PHPMailer/PHPMailer
基本的使用方法
1.下载后直接解压放在php环境下,然后运行examples
localhost/PHPMailer/examples/
如图所示:将examples下的这个文件后缀改为php
![14782609354727_upload.png 06IB$4[A$5QSH]5E3@SXEBC.png](https://img.scriptjc.com/image/14782609354727_upload.png?x-oss-process=style/600x600.jpg)
2.然后填写如下内容
![14782610592999_upload.png F7%ER)%GU{6@$$GP$][S5AL.png](https://img.scriptjc.com/image/14782610592999_upload.png?x-oss-process=style/600x600.jpg)
3.然后提交,会出来一个使用示例
![14782612611226_upload.png B1)I_]WP%}[3%G8O~8(9$)E.png](https://img.scriptjc.com/image/14782612611226_upload.png?x-oss-process=style/600x600.jpg)
4.将它复制,然后修改一下就可以使用了。
封装成函数
/**
* 发送邮件
* @param email address $toEmail 目的地邮箱
* @param String $title 邮件标题
* @param String/html $body 邮件内容
* @return boolean/String true/错误信息
*
* SSL协议:
* QQ邮箱端口则为 465/587
* 163邮箱端口为 465/994
* TLS协议:
* QQ邮箱端口则为 25
* 163邮箱端口为 25
*/
function send_email($toEmail,$title,$body){
if(!$toEmail or !$title or !$body){
return '缺少参数';
}
Vendor('PHPMailer.PHPMailerAutoload');
$myAddress = '123456@163.com';
$password = '123456';
$mail = new PHPMailer();
$mail->CharSet = 'utf-8';
try{
$mail->isSMTP();
// $mail->SMTPDebug = 2;// 调试信息
$mail->Host = "smtp.163.com";
$mail->Port = "465";
$mail->SMTPSecure = "ssl"; // ssl/tls协议方式
$mail->SMTPAuth = true; // SMTP服务器是否需要认证,使用了用户名和密码变量.
$mail->Username = $myAddress;
$mail->Password = $password;
$mail->addReplyTo($myAddress, "脚本小站"); // 增加一个 回复地址(别人回复时的地址)
$mail->setFrom($myAddress, "脚本小站"); // 增加一个邮件 发件人地址
$mail->addAddress($toEmail, "新用户"); // 增加一个 收件人地址(邮件目的地址)
$mail->Subject = $title;
$mail->msgHTML($body);
try{
$mail->send();
}catch(phpmailerException $e){
return $e->getMessage();
}
}catch(phpmailerException $e){
return $e->errorMessage();
}
}使用手册:
phpMailer5.0.0属性:
| 属性 (v5.0.0) | 类型 | 默认 | 描述 |
|---|---|---|---|
| $Priority | public | 3 | 优先级别(1 = 高, 3 = 中, 5 = 低) |
| $CharSet | public | iso-8859-1 | 字符集信息 |
| $ContentType | public | text/plain | 内容的消息类型 |
| $Encoding | public | 8bit | 消息的Encoding,设置有: "8bit", "7bit", "binary", "base64", "quoted-printable". |
| $ErrorInfo | public | 邮件发送错误信息. | |
| $From | public | root@localhost | 发件人地址. |
| $FromName | public | Root User | 发件人姓名. |
| $Sender | public | 发件人的返回路径信息, If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode. | |
| $Subject | public | 邮件主题 | |
| $Body | public | 邮件正文,可以使用HTML/text,如果是HTML,会设置IsHTML为true. | |
| $AltBody | public | 纯文本正文,不支持HTML的备用显示 | |
| $WordWrap | public | 0 | 达到一定数目自动换行. |
| $Mailer | public | 发送邮件的方法: ("mail", "sendmail", or "smtp"). | |
| $Sendmail | public | /usr/sbin/sendmail | sendmail的路径. |
| $PluginDir | public | PHPMailer插件路径,这是在不同的路径下的PHP include唯一有用的SMTP类 Path to PHPMailer plugins. This is now only useful if the SMTP class is in a different directory than the PHP include path. | |
| $ConfirmReadingTo | public | 回执信息,值为需要接收回执信息的邮箱地址. | |
| $Hostname | public | 设置主机使用邮件ID和接收头和直升机作为默认字符串.如果为空,由服务器名返回的值是使用或'localhost.localdomain'. | |
| $Host | public | localhost | SMTP主机,所有主机必须;隔开.可以同时设置多个主机,格式:"smtp1.example.com:25;smtp2.example.com".发送邮件时按照队列尝试. |
| $Port | public | 25 | SMTP主机端口 |
| $Helo | public | 设置SMTP信息 (默认是$Hostname). | |
| $SMTPAuth | public | false | SMTP服务器是否需要认证,使用了用户名和密码变量. |
| $Username | public | 设置 SMTP 用户名. | |
| $Password | public | 设置 SMTP 密码. | |
| $Timeout | public | 10 | 设置SMTP服务延迟时间.这个功能在win32平台不能用. |
| $SMTPDebug | public | false | 开启SMTP类调试. |
| $SMTPKeepAlive | public | false | 保持连接,关闭则是SmtpClose(). |
| $Version | public | 返回PHPMailer版本号 | |
| $SingleTo | public | false | Provides the ability to have the TO field process individual emails, instead of sending to entire TO addresses |
phpMailer5.0.0方法:
| 方法 (v5.0.0) | 类型 | 默认 | 描述 |
|---|---|---|---|
| set($name, $value) | string $name string $value | 为用户能够创建自己的自定义伪属性. 例子: $mail->set('X-MSMail-Priority', 'Normal'); | |
| addCustomHeader($value) | string $value | 创建自定义页头 . 例子: $mail->addCustomHeader("X-Priority: 3"); | |
| MsgHTML($message) | 使用HTML发送.比如可以定义一些html代码 | ||
| IsMail() | boolean | true | 设置phpMailer是否使用mail()函数.(true, false or blank) |
| IsSMTP() | boolean | 设置phpMailer是否使用 SMTP. 如果设置了该项,其他相关项也需要设置.(true, false or blank) | |
| IsSendmail() | boolean | 设置phpMailer是否使用Sendmail().(true, false or blank) | |
| IsQmail() | boolean | 设置phpMailer是否使用Sendmail() MTA. (true, false or blank) | |
| SetFrom($address, $name = "") | string $address string $name | 增加一个邮件发件人地址. | |
| AddAddress($address, $name = "") | string $address string $name | 增加一个收件人地址(邮件目的地址). | |
| AddCC($address, $name = "") | string $address string $name | 增加一个抄送地址. 注意:此功能需要smtp服务器搭建在win32平台. | |
| AddBCC($address, $name = "") | string $address string $name | 增加一个密送地址. 注意:此功能需要smtp服务器搭建在win32平台. | |
| AddReplyTo($address, $name = "") | string $address string $name | 增加一个回复地址(别人回复时的地址). | |
| Send() | 创建信息和发送邮件,如果发送不成功则返回false,使用ErrorInfo属性可以显示错误描述,发送成功返回true. | ||
| AddAttachment($path, $name = "", $encoding = "base64", $type = "application/octet-stream") | string $path string $name string $encoding string $type | 添加从本地一个附件.如果找不到该附件就返回false.参数分别是:本地路径,编码,文件类型 | |
| AddEmbeddedImage($path, $cid, $name = "", $encoding = "base64", $type = "application/octet-stream") | string $path string $cid string $name string $encoding string $type | 增加一个嵌入式附件,包括图像,声音等其他几乎任何文件,一定要设置$type属性,如果是jpeg就使用"image/jpeg",gif则是"image/gif",具体对应的请自行参照相关文件.如果使用MsgHTML()就没用必要使用这个方法. | |
| ClearAddresses() | 清除所有收件人地址,返回无效. | ||
| ClearCCs() | 清除所有抄送地址,返回无效. | ||
| ClearBCCs() | 清除所有密送地址,返回无效. | ||
| ClearReplyTos() | 清除所有回复地址,返回无效. | ||
| ClearAllRecipients() | 清除所有收件人/草送/密送地址,返回无效. | ||
| ClearAttachments() | 清除所有设置的文件/字符串/二进制附件,返回无效. | ||
| ClearCustomHeaders() | 清除所有设置的页头,返回无效. | ||
| Send() | 发送邮件 | ||
| SetLanguage($lang, $langpath) | string $lang string $langpath | 设置错误提示语言,默认是英语,第一参数是语言,第二个参数是语言文件路径 |
