此教程是笔者通过laravel学院的教程的學习总结总结了几个错误,以及laravel学院中没讲到的点laravel学院真心不错,推荐给大家
laravel自带SwiftMailer库,集成了多种邮件API可以很方便的实现邮件的發送。在本教程中使用到的是SMTP(Simple Message Transfer Protocol)简单邮件传输协议通常理解为邮件发送服务器。
需要注意的是:使用QQ163 郵箱登录的话,需要开启POP3和SMTP服务开启方式如下:
当开启成功会生成密钥,这个东西会在配置中用到
当需要记录发信记录时你还需要进荇相关配置
.env文件需要配置username和password其余为空,则会使用使用QQ163 邮箱登录的话,对应值是
port
用于配置163 邮箱登录发送服务端口号,比如一般默认值是25但如果设置SMTP使用SSL加密,该值为465from
配置项包含address和name,前者表示发送163 邮箱登录后者表示发送邮件使用的用户名。encryption
表示加密类型可以设置为null表示不使用任何加密,也可以设置为tls或sslusername
表示163 邮箱登录账号,比如password
表示上述163 邮箱登录登录对应登录密码注意QQ163 邮箱登录的话应该开启POP3|SMTP服务時给的密钥。开始编写控制器、路由、模板
在路由中加入如下规则:
// 返回的一个错误数组,利用此可以判断是否发送成功Mail::send();需要传三个参數第一个为引用的模板,第二个为给模板传递的变量第三个为一个闭包,参数绑定Mail类的一个实例
当然,可以在模板直接应用静态文件;但灵活性差使用embed方法更灵活。
echo '发送邮件成功请查收!'; echo '发送邮件失败,请重试!';现在在服务器上进行测试了在地址栏输入
本地图爿引用需要使用到Storage类,模板方法略有不同在Storage/images文件夹中有一张图片。
echo '发送邮件成功,请查收!'; echo '发送邮件失败请重试!'; // 在邮件中上传附件
embedData()两个参数第一个为图片,第二个为自定义图片名称$message的attach方法上传附件,该方法第一个参数是附件地址第二个参数为一些额外参数,这裏我们通过as指定附件在邮件中的显示名称
测试如果显示文件名乱码的话,就这样写