php发送邮件插件phpmailer


PHPmailer的git下载地址 https://github.com/PHPMailer/PHPMailer



基本的使用方法


1.下载后直接解压放在php环境下,然后运行examples

localhost/PHPMailer/examples/


如图所示:将examples下的这个文件后缀改为php


06IB$4[A$5QSH]5E3@SXEBC.png


2.然后填写如下内容



F7%ER)%GU{6@$$GP$][S5AL.png


3.然后提交,会出来一个使用示例


B1)I_]WP%}[3%G8O~8(9$)E.png


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)类型默认描述
$Prioritypublic3优先级别(1 = 高, 3 = 中, 5 = 低)
$CharSetpubliciso-8859-1字符集信息
$ContentTypepublictext/plain内容的消息类型
$Encodingpublic8bit消息的Encoding,设置有: "8bit", "7bit", "binary", "base64", "quoted-printable".
$ErrorInfopublic
邮件发送错误信息.
$Frompublicroot@localhost发件人地址.
$FromNamepublicRoot User发件人姓名.
$Senderpublic
发件人的返回路径信息, If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
$Subjectpublic
邮件主题
$Bodypublic
邮件正文,可以使用HTML/text,如果是HTML,会设置IsHTML为true.
$AltBodypublic
纯文本正文,不支持HTML的备用显示
$WordWrappublic0达到一定数目自动换行.
$Mailerpublicmail发送邮件的方法: ("mail", "sendmail", or "smtp").
$Sendmailpublic/usr/sbin/sendmailsendmail的路径.
$PluginDirpublic

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.

$ConfirmReadingTopublic
回执信息,值为需要接收回执信息的邮箱地址.
$Hostnamepublic
设置主机使用邮件ID和接收头和直升机作为默认字符串.如果为空,由服务器名返回的值是使用或'localhost.localdomain'.
$Hostpubliclocalhost

SMTP主机,所有主机必须;隔开.可以同时设置多个主机,格式:"smtp1.example.com:25;smtp2.example.com".发送邮件时按照队列尝试.

$Portpublic25SMTP主机端口
$Helopublic
设置SMTP信息 (默认是$Hostname).
$SMTPAuthpublicfalseSMTP服务器是否需要认证,使用了用户名和密码变量.
$Usernamepublic
设置 SMTP 用户名.
$Passwordpublic
设置 SMTP 密码.
$Timeoutpublic10设置SMTP服务延迟时间.这个功能在win32平台不能用.
$SMTPDebugpublicfalse开启SMTP类调试.
$SMTPKeepAlivepublicfalse保持连接,关闭则是SmtpClose().
$Versionpublic
返回PHPMailer版本号
$SingleTopublicfalseProvides 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()booleantrue设置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

设置错误提示语言,默认是英语,第一参数是语言,第二个参数是语言文件路径