如果在后台用户管理加一个发送邮件的功能,相对来说联系用户就很方便了,所以自己打算研究一下mail邮件的发送。在网上找了很多例子,发现都无法实现,我将使用163邮箱做邮件发送,需登录163邮箱开启POP3和SMTP服务,以及生成授权密码,在.env进行配置
MAIL_DRIVER=smtpMAIL_HOST=MAIL_PORT=465MAIL_USERNAME=你的163邮箱地址MAIL_PASSWORD=你的163邮箱地址对应的授权密码(不是登录密码)MAIL_ENCRYPTION=sslMAIL_FROM_ADDRESS=你的163邮箱地址MAIL_FROM_NAME=发送邮件使用的用户名
driver
用于配置默认的邮件发送驱动,我们用SMTP(Simple Message Transfer Protocol)简单邮件传输协议host
是邮箱所在主机,比如我们使用163邮箱,对应值是,使用QQ邮箱的话,对应值是
port
用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465username
表示邮箱账号password
表示上述邮箱对应的授权密码encryption
表示加密类型,可以设置为null表示不使用任何加密,也可以设置为tls或ssl。from
配置项包含address和name,前者表示发送邮箱,后者表示发送邮件使用的用户名。
使用163邮箱做的发送,需登录163邮箱开启POP3和SMTP服务,以及生成授权密码。
点击下面的客户端授权密码进行设置,这里我已经设置好了
路由定义
Route::post('/users/sms_email','UsersController@sendEmail');
控制器代码(发送纯文本邮件)
MAIL_FROM_ADDRESS、MAIL_FROM_NAME需要在env进行设置否则发送邮件失败
public function sendEmail(Request $request){// 获取邮箱标题$title = $request->input('title');// 获取邮箱内容$content = $request->input('content');$toMail = '对方邮箱地址';Mail::raw($content, function ($message) use ($toMail, $title) {$message->subject($title);$message->to($toMail);});}
下面我将展示测试截图,以保证代码的有效性