金沙贵宾会官网|金沙贵宾会登录-官网

【A】金沙贵宾会官网超高的返奖率为娱乐者提供资金保障,所以金沙贵宾会登录官网更加的方便了你的娱乐,申请88元彩金,因为在当中不仅仅只有游戏。

驱动实现发送邮件,邮件功能使用详解

日期:2019-10-02编辑作者:网络技术

配置

  laravel自带SwiftMailer库,集成了多种邮件API,支持多种邮件驱动方式,包括smtp、Mailgun、Maildrill、Amazon SES、mail和sendmail,Mailgun和Amazon SES都是收费的,Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。mail驱动使用PHP提供的mail函数发送,sendmail驱动通过Sendmail/Postfix(Linux)提供的命令发送邮件,smtp驱动通过支持ESMTP的SMTP发送邮件。就目前状况来看,使用smtp是最明智的选择,mail不安全,sendmail需要安装配置Sendmail/Postfix,其他要么付费要么不能用。

PHP 7
Laravel 5.1
OS X El Capitan 10.11.4
简介
Laravel 基于热门的 SwiftMailer 函数库提供了一个简洁的 API。Laravel 为 SMTP、Mailgun、Mandrill、Amazon SES、PHP 的 mail 函数及 sendmail 提供驱动,让你可以快速地从所选择的本地或云端服务开始发送邮件。(摘录 PHPhub 翻译文档)

邮件的配置文件在config/mail.php文件中,配置项及说明如下:

 

配置

<?php

实例:

邮件配置文件是config/mail.php

return [

1.邮件所在的配置文件在app/mail.php中

return [
    // 默认发送邮件驱动
    'driver' => env('MAIL_DRIVER', 'smtp'),

    /*
    |--------------------------------------------------------------------------
    | Mail Driver
    |--------------------------------------------------------------------------
    |
    | Laravel supports both SMTP and PHP's "mail" function as drivers for the
    | sending of e-mail. You may specify which one you're using throughout
    | your application here. By default, Laravel is setup for SMTP mail.
    |
    | Supported: "smtp", "mail", "sendmail", "mailgun", "mandrill",
金沙贵宾会官网,    |            "ses", "sparkpost", "log"
    |
    */

 

    // 发送邮件主机地址
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),

    // 默认使用 smtp 驱动, 支持 "smtp", "mail", "sendmail", "mailgun", "mandrill", "ses", "sparkpost", "log"
    'driver' => env('MAIL_DRIVER', 'smtp'),

  'driver' => env('MAIL_DRIVER', 'smtp'),

    // 发送邮件主机端口
    'port' => env('MAIL_PORT', 587),

    /*
    |--------------------------------------------------------------------------
    | SMTP Host Address
    |--------------------------------------------------------------------------
    |
    | Here you may provide the host address of the SMTP server used by your
    | applications. A default option is provided that is compatible with
    | the Mailgun mail service which will provide reliable deliveries.
    |
    */

  'host' => env('MAIL_HOST', 'smtp.163.com'),

    // 指定发送邮件的邮箱地址和用户名称
    'from' => ['address' => null, 'name' => null],

    // smtp 服务器的主机地址
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),

  'port' => env('MAIL_PORT', 25),

    // 指定发送邮件协议
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),

    /*
    |--------------------------------------------------------------------------
    | SMTP Host Port
    |--------------------------------------------------------------------------
    |
    | This is the SMTP port used by your application to deliver e-mails to
    | users of the application. Like the host we have set this value to
    | stay compatible with the Mailgun e-mail application by default.
金沙贵宾会登录官网,    |
    */

  'from' => ['address' => 'yourname@163.com',

    // 邮箱登录账号
    'username' => env('MAIL_USERNAME'),

    // 端口
    'port' => env('MAIL_PORT', 587),

  'name' => 'yourname'],

    // 邮箱登录密码
    'password' => env('MAIL_PASSWORD'),

    /*
    |--------------------------------------------------------------------------
    | Global "From" Address
    |--------------------------------------------------------------------------
    |
    | You may wish for all e-mails sent by your application to be sent from
    | the same address. Here, you may specify a name and address that is
    | used globally for all e-mails that are sent by your application.
    |
    */

  'encryption' => env('MAIL_ENCRYPTION', 'tls'),

    // 当驱动为 sendmail 时,指定驱动的命令地址
    'sendmail' => '/usr/sbin/sendmail -bs',

    // 配置全局的发件邮箱地址及名称
    'from' => ['address' => "json_vip@163.com", 'name' => "马燕龙个人博客"],

  'username' => env('yourname@163.com'),

    // false 发送邮件不记录日志,true 记录日志不发送邮件
    'pretend' => false,
];

    /*
    |--------------------------------------------------------------------------
    | E-Mail Encryption Protocol
    |--------------------------------------------------------------------------
    |
    | Here you may specify the encryption protocol that should be used when
    | the application send e-mail messages. A sensible default using the
    | transport layer security protocol should provide great security.
    |
    */

  'password' => env('password'),

编写程序

    // 协议
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),

  'sendmail' => '/usr/sbin/sendmail -bs',

env
本文采用 QQ 邮箱进行测试,首先修改邮箱配置

    /*
    |--------------------------------------------------------------------------
    | SMTP Server Username
    |--------------------------------------------------------------------------
    |
    | If your SMTP server requires a username for authentication, you should
    | set it here. This will get used to authenticate with your server on
    | connection. You may also set the "password" value below this one.
    |
    */

 

MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=(填写 QQ 邮箱账号)
MAIL_PASSWORD=(填写 QQ 邮箱密码)
MAIL_ENCRYPTION=ssl
路由
/* 邮件管理模块 */
Route::get('email/send/{id}', [
    'as'   => 'backend.email.send',  
    'uses' => 'EmailController@send',
]);

    // 发件邮箱账号
    'username' => env('MAIL_USERNAME'),

注意 : .env文件中的配置会覆盖掉这里的配置,有冲突的二者取其一,配置对即可

控制器

    /*
    |--------------------------------------------------------------------------
    | SMTP Server Password
    |--------------------------------------------------------------------------
    |
    | Here you may set the password required by your SMTP server to send out
    | messages from your application. This will be given to the server on
    | connection so that the application will be able to send messages.
    |
    */

2.添加路由

新增控制器

    // 发件邮箱密码
    'password' => env('MAIL_PASSWORD'),

  Route::get('/sendMail', 'MailController@sendMail'); 

php artisan make:controller Backend/EmailController --plain
控制器代码如下

    /*
    |--------------------------------------------------------------------------
    | Sendmail System Path
    |--------------------------------------------------------------------------
    |
    | When using the "sendmail" driver to send e-mails, we will need to know
    | the path to where Sendmail lives on this server. A default path has
    | been provided here, which will work well on most of your systems.
    |
    */

 

<?php

    'sendmail' => '/usr/sbin/sendmail -bs',

3.控制器需要包括以下内容

namespace AppHttpControllersBackend;

];

  use Mail;

use AppFacadesUserRepository;
use IlluminateHttpRequest;

具体的参数值在.env文件中配置,这里使用的是163邮箱的SMTP服务,配置如下:

 

use AppHttpRequests;
use AppHttpControllersController;

MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465
MAIL_USERNAME=json_vip@163.com
MAIL_PASSWORD=对应账号的密码
MAIL_ENCRYPTION=ssl    
三、发送邮件

  class MailController{

use Mail;

使用时记得 use Mail;

    public function sendMail(){

class EmailController extends Controller
{
    public function send(Request $request, $id)
    {
        $user = UserRepository::find($id);

  1. 发送纯文本邮件

      $webRecordItem= ['email'=>'your email address', 'subject'=>'测试邮件系统'];

        $result = Mail::send('emails.test', ['user' => $user], function ($email) use ($user) {
            $email->to('2794408425@qq.com')->subject('Hello World');
        });

$num = Mail::raw('邮件内容', function($message) {

        Mail::raw('这是一封测试邮件', function ($message) use ($webRecordItem) {

        if($result){
            echo '发送邮件成功';
        } else {
            echo '发送邮件失败';
        }
    }
}

    $message->from('json_vip@163.com', '发件人名称');
    $message->subject('邮件主题');
    $message->to('849291170@qq.com');
});    

        $message->to($webRecordItem['email'])->subject($webRecordItem['subject']);

新增视图

  1. 发送HTML视图

      });

新增视图emails/test.blade.php,代码如下:

使用mails目录下的welcome模板,传递的参数用于给模板中的变量赋值:

    }

<html>
<head>
    <title></title>
</head>
<body>
    你好,{{$user->name}},这是一封测试邮件。
</body>
</html>

$num = Mail::send('mails.welcome', ['name' => 'sean'], function($message) {

  }

执行代码

    $message->to('849291170@qq.com');
});
对应的模板为:

 

在浏览器访问指定路由,然后去邮箱查看邮件是否发送成功。

<h1> Welcome, {{ $name }} ! </h>

注意 : use Mail不能丢 ,使用use($webRecordItem)传递参数进入闭包函数

查看邮件是否发送成功

 

其它内容:

  1.有些邮箱需要开启POP3和SMTP服务,网易邮箱会让你设置一个安全码,密码处填写这个就可以

  2.driver用于配置默认的邮件发送驱动,

  3.host是邮箱所在主机,比如我们使用163邮箱,对应值是smtp.163.com,使用QQ邮箱的话,对应值是smtp.qq.com。

  4.port用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465。

 

文章主要整理自以下地址,更多配置请参照

本文由金沙贵宾会官网发布于网络技术,转载请注明出处:驱动实现发送邮件,邮件功能使用详解

关键词:

file_get_contents获取远程网页内容函数,深入file_

无限file_get_contents获取远程网页内容函数 假诺您使用file_get_contents获取远程文件内容重回为空或提示该函数不可用,或...

详细>>

php中正则获取url函数preg_match,preg_match正则表达式

函数用法 int preg_match_all (string pattern, string subject, array matches [, int flags]) $string="bexample:/bdiv align=leftthis is atest/div";   ...

详细>>

phpmailer发送gmail邮件实例详解

    extension=php_openssl.dll//去掉最前面的分号,重启apache或nginx服务器。 复制代码 代码如下: if(!$mail-Send()){     echo...

详细>>

mysql批量删除表与清空数据库,使用PHP备份MYSQL数

 代码如下 本文章介绍利用php+mysql实现mysql批量删除表与清空数据库具体操作方法,各位朋友可参考。 下面提供两种...

详细>>