tp配置邮箱发送邮件

一、获取邮箱的授权码(这里以126邮箱为案例)

1.登录邮箱,点击设置

登录邮箱找到IMAP|SMTP 或 POP3|SMTP

2.开启IMAP|SMTP 或 POP3|SMTP服务

开启IMAP|SMTP 或 POP3|SMTP服务

3.获取授权码到授权码

二、下载邮箱类库

方法1.使用composer安装phpmailer(推荐使用此方法)

composer require phpmailer/phpmailer

方法2.手动下载引用

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

三、封装通用函数

下面函数使用到的config配置文件

邮箱配置

方法1.composer安装的封装

/*** Notes:发送邮件* @param $tomail //收件人地址* @param string $subject  //主题* @param string $body  //内容* @param null $attachment  //附件* @param array $option // 额外参数* @return bool*/
function send_mail($tomail, $subject = '', $body = '', $attachment = null, $option = array()) {// config读取的是配置文件里的配置$username = config('my_mail.platform_126.username');$senderName = config('my_mail.platform_126.sender_name', $username);$password = config('my_mail.platform_126.password');$defualtOption = array('toname'            => '', // 接收方姓名);foreach($defualtOption as $key => $item){if(!isset($option[$key])){$option[$key] = $item;}}$mail = new \PHPMailer\PHPMailer\PHPMailer(); //实例化PHPMailer对象$mail->CharSet = 'UTF-8';           //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码$mail->IsSMTP();                    // 设定使用SMTP服务$mail->SMTPDebug = 0;               // SMTP调试功能 0=关闭 1 = 错误和消息 2 = 消息$mail->SMTPAuth = true;             // 启用 SMTP 验证功能$mail->SMTPSecure = config('my_mail.platform_126.smtp_secure'); // 使用安全协议$mail->Host = config('my_mail.platform_126.host'); // 企业邮局域名$mail->Port = config('my_mail.platform_126.port'); //设置ssl连接smtp服务器的远程服务器端口号 可选465或587$mail->Username = $username;    //邮件发送人的用户名(请填写完整的email地址)$mail->Password = $password;    // 邮件发送人的 密码 (授权码)$mail->SetFrom($username, $senderName);$replyEmail = '';                   //留空则为发件人EMAIL$replyName = '';                    //回复名称(留空则为发件人名称)$mail->AddReplyTo($replyEmail, $replyName);  //回复的地址$mail->Subject = $subject;   //邮件标题$mail->MsgHTML($body);       //邮件内容$mail->AddAddress($tomail, $option['toname']);  //收件人地址,("收件人email","收件人姓名")if (is_array($attachment)) { // 添加附件foreach ($attachment as $file) {is_file($file) && $mail->AddAttachment($file);}}return $mail->Send() ? true : $mail->ErrorInfo;
}

方法2.通过引用到extend的封装

function send_mail($tomail, $subject = '', $body = '', $attachment = null, $option = array()) {// config读取的是配置文件里的配置$username = config('my_mail.platform_126.username');$senderName = config('my_mail.platform_126.sender_name', $username);$password = config('my_mail.platform_126.password');$defualtOption = array('toname'            => '', // 接收方姓名);foreach($defualtOption as $key => $item){if(!isset($option[$key])){$option[$key] = $item;}}$mail = new \PHPMailer\PHPMailer(); //实例化PHPMailer对象$mail->CharSet = 'UTF-8';           //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码$mail->IsSMTP();                    // 设定使用SMTP服务$mail->SMTPDebug = 0;               // SMTP调试功能 0=关闭 1 = 错误和消息 2 = 消息$mail->SMTPAuth = true;             // 启用 SMTP 验证功能$mail->SMTPSecure = config('my_mail.platform_126.smtp_secure'); // 使用安全协议$mail->Host = config('my_mail.platform_126.host'); // 企业邮局域名$mail->Port = config('my_mail.platform_126.port'); //设置ssl连接smtp服务器的远程服务器端口号 可选465或587$mail->Username = $username;    //邮件发送人的用户名(请填写完整的email地址)$mail->Password = $password;    // 邮件发送人的 密码 (授权码)$mail->SetFrom($username, $senderName);$replyEmail = '';                   //留空则为发件人EMAIL$replyName = '';                    //回复名称(留空则为发件人名称)$mail->AddReplyTo($replyEmail, $replyName);  //回复的地址$mail->Subject = $subject;   //邮件标题$mail->MsgHTML($body);       //邮件内容$mail->AddAddress($tomail, $option['toname']);  //收件人地址,("收件人email","收件人姓名")if (is_array($attachment)) { // 添加附件foreach ($attachment as $file) {is_file($file) && $mail->AddAttachment($file);}}return $mail->Send() ? true : $mail->ErrorInfo;
}

参考资料

  • 快速开发tp5发送email功能 4步搞定
  • tp5发送邮件
  • ThinkPHP6.0 扩展类库目录(extend)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部