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; } }