phpmail的调用:调用需要phpmailer包的,所以第一次用的朋友需要先下好。
使用前先引入class.smtp.php和class.phpmailer.php这2个文件,路径根据自己的文件路径而写。
下面的send_mail方法中传入了6个参数,分别是:收件人邮箱(recipient),发件人名字(sender),邮件标题(title),内容(body),发件人邮箱服务器+邮箱+邮箱密码(form),debug模式(0不开,1开)。
收件人邮箱是用于AddAddress(email,name)方法的,email也可以是数组,用于群发,name是收件人名字。
form参数传的是3个参数.
第一个$form['host'](smtp服务器)有163邮箱,qq邮箱等类型,根据自己而写,如smtp.163.com;
第二个参数$form['user'],就是发件人邮箱;
第三个参数$form['pwd'],邮箱密码;
我把默认的form参数写在了config中,所以如果没有传入新的form参数,就直接使用默认邮箱发送。
debug是调试模式,会输出错误原因等信息。在测试时可以用一用。
安全证书类型:$mail->SMTPSecure='tls',选'ssl'安全证书时一直发送失败,还没研究出为什么,如果知道的大神请告之...
/**
*发送邮件
*参数:收件人email,发件人名,标题,内容,匿名,不匿名,发送邮箱的参数,debug模式
*/
public function send_mail($recipient,$sender,$title,$body,$form,$debug=0){
include("./ThinkPHP/Extend/Vendor/Phpmailer/class.smtp.php");
include("./ThinkPHP/Extend/Vendor/Phpmailer/class.phpmailer.php");
$mail=new PHPMailer();
$mail_config=C("MAIL_CONFIG");
$user=$mail_config["MAIL_USER"];
$host=$mail_config["MAIL_SMTP"];
$pwd=$mail_config["MAIL_PWD"];
if(isset($form)){
$user=$form['user'];
$host=$form['host'];
$pwd=$form['pwd'];
}
$mail->IsSMTP();//smtp发送邮箱
$mail->Host=$host;
$mail->SMTPAuth=true;//打开SMTP认证
$mail->From=$user;
$mail->FromName=$sender;
$mail->Username=$user;
$mail->Password=$pwd;
$mail->SMTPSecure='tls';
if($debug==1){
$mail->SMTPDebug=true;
}
$mail->Port="25";//接口
$mail->debug=$debug;
$mail->AddAddress("$recipient");
$mail->Subject=$title;
$mail->Body=$body;
$mail->isHTML(true);
if($mail->Send()){
echo "邮件发送成功";
}else{
echo "错误原因".$mail->ErrorInfo;
}
}