tp配置邮箱发送邮件
一、获取邮箱的授权码(这里以126邮箱为案例)
1.登录邮箱,点击设置

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

3.获取授权码到授权码
二、下载邮箱类库
方法1.使用composer安装phpmailer(推荐使用此方法)
composer require phpmailer/phpmailer
方法2.手动下载引用
下载地址:https://github.com/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)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
