phpmailer发送邮件的使用方法
来源:原创
时间:2016-11-04
作者:脚本小站
分类:PHP
php发送邮件插件phpmailer
PHPmailer的git下载地址 https://github.com/PHPMailer/PHPMailer
基本的使用方法
1.下载后直接解压放在php环境下,然后运行examples
localhost/PHPMailer/examples/
如图所示:将examples下的这个文件后缀改为php
2.然后填写如下内容
3.然后提交,会出来一个使用示例
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 | 设置错误提示语言,默认是英语,第一参数是语言,第二个参数是语言文件路径 |