美文网首页
利用Laravel自带SMTP邮件组件实现发送邮件

利用Laravel自带SMTP邮件组件实现发送邮件

作者: stutterr | 来源:发表于2017-03-08 23:06 被阅读124次

实验使用邮箱的126,QQ邮箱

需要注意的是:需要开启POP3和SMTP服务。开启方式如下:

Paste_Image.png

QQ中当开启成功会生成密钥,这个东西会在配置中用到

Paste_Image.png

同理,其他邮箱也一样需要在设置中开启

开始进行配置

.env中的变量

MAIL_DRIVER=
MAIL_HOST=smtp.126.com
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
  1. MAIL_USERNAME表示邮箱账号,比如abcd@126.com
  2. MAIL_PASSWORD表示邮箱开启POP3|SMTP服务时给的密钥。注意不是邮箱登陆时的密码

mail.php中的配置

return [
  'driver' => env('MAIL_DRIVER', 'smtp'),
  'host' => env('MAIL_HOST', 'smtp.1126.com'),
  'port' => env('MAIL_PORT', 25),
  'from' => ['address' => '18010029423@163.com','name' => '发件人'],
  'encryption' => env('MAIL_ENCRYPTION', 'tls'),
  'username' => env('MAIL_USERNAME'),
  'password' => env('MAIL_PASSWORD'),
  'sendmail' => '/usr/sbin/sendmail -bs',
]
  1. driver用于配置默认的邮件发送驱动,一般使用smtp
  2. host是邮箱所在主机,比如我们使用126邮箱,对应值是smtp.126.com,使用QQ邮箱的话,对应值是smtp.qq.com。
  3. port用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465。
  4. from 配置项包含address和name,前者表示发送邮箱,后者表示发送邮件使用的用户名。
  5. encryption表示加密类型,可以设置为null表示不使用任何加密,也可以设置为tls或ssl。
  6. username表示邮箱账号,比如yaojinbu@163.com
  7. password表示邮箱开启POP3|SMTP服务时给的密钥。

发送代码编写

基本发送模板

      Mail::send('email_register', ['m3_email' => $m3_email], function ($m) use ($m3_email) {
          //$m->from('hello@app.com', 'Your Application');
          $m->to($m3_email->to, '尊敬的用户')
            ->cc($m3_email->cc)
            ->subject($m3_email->subject);

第一个参数邮件发送给用户的视图,邮件显示的内容
第二个参数必须是数组,数组里的数据供视图来使用
第三个参数,一个闭包函数,传入相应的数据使用

创建视图

# email_register.blade.php
邮箱验证<br/>

{{$m3_email->content}}

这样就可以发送一封邮件了

发送纯文本邮件

Mail::raw('你好,我是PHP程序!', function ($message) {
    $to = '282584778@qq.com';
    $message ->to($to)->subject('纯文本信息邮件测试');
});

相关文章

网友评论

      本文标题:利用Laravel自带SMTP邮件组件实现发送邮件

      本文链接:https://www.haomeiwen.com/subject/erpigttx.html