基于onethink和thinkphp v3.2.3 发送邮件类
上面的是需要在配置管理中新增加的配置项
上面的是邮件配置项
上面的是用户注册成功邮件模板,更多可自己添加,比如密码找回之类的
此图是成功邮件
下面的是代码,直接加在application/common/common/function.php中
使用的是PHPMailer,此类库包自己在网上下,放入THINKPHP/libary/ORG中就可以了,使用方法 在任何想发送邮件的地方,比如注册控制器中,send_mail(邮件地址,主题,邮件内容); 这样就行了,超简单
比如 send_mail($email,$subject,$body);
/**
* 系统邮件发送函数
* @param string $to 接收邮件者邮箱
* @param string $name接收邮件者名称
* @param string $subject 邮件主题
* @param string $body 邮件内容
* @param string $attachment 附件列表
* @茉莉清茶 57143976@qq.com
*/
function send_mail($to = '', $subject = '', $body = '', $name = '', $attachment = null){
$from_email = C('MAIL_SMTP_USER');
$from_name = C('WEB_SITE');
$reply_email = '';
$reply_name = '';
//new phpmailer();
//$mail = new ORG\PHPMailer\phpmailer();
import('ORG.PHPMailer.phpmailer');//从PHPMailer目录导入phpmailer.class.php类文件
$mail = new PHPMailer; //实例化PHPMailer
$mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
$mail->IsSMTP();// 设定使用SMTP服务
$mail->SMTPDebug= 0; // 关闭SMTP调试功能
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // 启用 SMTP 验证功能
$mail->SMTPSecure = ''; // 使用安全协议
$mail->Host = C('MAIL_SMTP_HOST');// SMTP 服务器
$mail->Port = C('MAIL_SMTP_PORT');// SMTP服务器的端口号
$mail->Username = C('MAIL_SMTP_USER');// SMTP服务器用户名
$mail->Password = C('MAIL_SMTP_PASS');// SMTP服务器密码
$mail->SetFrom($from_email, $from_name);
$replyEmail = $reply_email?$reply_email:$from_email;
$replyName = $reply_name?$reply_name:$from_name;
if($to == ''){
$to = C('MAIL_SMTP_CE');//邮件地址为空时,默认使用后台默认邮件测试地址
}
if($name == ''){
$name = C('WEB_SITE');//发送者名称为空时,默认使用网站名称
}
if($subject == ''){
$subject = C('WEB_SITE_TITLE');//邮件主题为空时,默认使用网站标题
}
if($body == ''){
$body = C('WEB_SITE_DESCRIPTION');//邮件内容为空时,默认使用网站描述
}
$mail->AddReplyTo($replyEmail, $replyName);
$mail->Subject = $subject;
$mail->MsgHTML($body);//解析
$mail->AddAddress($to, $name);
if(is_array($attachment)){ // 添加附件
foreach ($attachment as $file){
is_file($file) && $mail->AddAttachment($file);
}
}
return $mail->Send() ? true : $mail->ErrorInfo;//返回错误信息
}
页:
[1]