thinkphp 发送邮件代码 可以用于任何地方使用
thinkphp 发送邮件代码 可以用于任何地方使用 这个我是在做一个插件的时间 插件失败了 就会邮件通知 要及时修复也可以用到api接口失败时候通知 非常实用以下代码类和函数代码require '../../vendor/autoload.php';use phpmailer\PHPMailer;
class Email
{
public$error;
private $obj;
private function EmailInit()
{
$this->obj = new PHPMailer();
// 使用smtp方式发送
$this->obj->IsSMTP();
// 服务器host地址
$this->obj->Host = 'smtp.qq.com';
//smtp验证功能;
$this->obj->SMTPAuth = true;
// 端口
$this->obj->Port = 465;
// SSL方式加密
//if(MyC('common_email_is_use_ssl', 0, true) == 1)
// {
$this->obj->SMTPSecure = 'ssl';
// }
// 邮箱用户名
$this->obj->Username ='';
// 邮箱密码
$this->obj->Password = '';
// 发件人
$this->obj->From = '';
// 发件人姓名
$this->obj->FromName = '';
// 是否开启html格式
$this->obj->isHTML(true);
// 设置编码
$this->obj->CharSet = 'utf-8';
}
public function SendHtml($param = array())
{
if(empty($param['email']))
{
$this->error = '收件邮箱不能为空';
return false;
}
if(empty($param['content']))
{
$this->error = '发送内容不能为空';
return false;
}
if(empty($param['title']))
{
$this->error = '邮件标题不能为空';
return false;
}
if(!empty($param['data']))
{
$param['content'] = str_replace('${user_name}', $param['data']['user_name'], $param['content']);
$param['content'] = str_replace('${user_nickname}', $param['data']['user_nickname'], $param['content']);
$param['content'] = str_replace('${user_mobile}', $param['data']['user_mobile'], $param['content']);
$param['content'] = str_replace('${user_email}', $param['data']['user_email'], $param['content']);
$param['content'] = str_replace('${order_no}', $param['data']['order_no'], $param['content']);
$param['content'] = str_replace('${payment_name}', $param['data']['payment_name'], $param['content']);
$param['content'] = str_replace('${goods}', $param['data']['goods'], $param['content']);
$param['content'] = str_replace('${total_price}', $param['data']['total_price'], $param['content']);
$param['content'] = str_replace('${order_model}', $param['data']['order_model'], $param['content']);
$param['content'] = str_replace('${order_code}', $param['data']['order_code'], $param['content']);
$param['content'] = str_replace('${alias}', $param['data']['alias'], $param['content']);
$param['content'] = str_replace('${name}', $param['data']['name'], $param['content']);
$param['content'] = str_replace('${address}', $param['data']['address'], $param['content']);
$param['content'] = str_replace('${phone}', $param['data']['phone'], $param['content']);
$param['content'] = str_replace('${user_note}', $param['data']['user_note'], $param['content']);
$param['content'] = str_replace('${time}', $param['data']['time'], $param['content']);
$param['content'] = str_replace('${client_type}', $param['data']['client_type'], $param['content']);
}
// 邮件初始化
$this->EmailInit();
// 收件人地址,可以替换成任何想要接收邮件的email信箱,格式("收件人email","收件人姓名")
$this->obj->AddAddress($param['email'], isset($param['username']) ? $param['username'] : $param['email']);
// 邮件标题
$this->obj->Subject = $param['title'];
// 邮件内容
$this->obj->Body = $param['content'];
// 邮件正文不支持HTML的备用显示
$this->obj->AltBody = strip_tags($param['content']);
// 发送邮件
if($this->obj->Send())
{
return true;
} else {
$this->error = $this->obj->ErrorInfo;
}
return false;
}
}这个是使用代码
$email = new Email(); // 创建 Email 类的实例
$param = [
'email' => '收件人',
'title' => '标题',
'content' => '内容',
];
if ($email->SendHtml($param){
echo '发送成功';
}else{
echo '发送失败';
}
页:
[1]