在laravel错误中使用mailgun发送电子邮件

use*_*908 9 laravel mailgun

你好我一直只是想在laravel发送一封电子邮件我阅读文档,他们让它看起来很容易,但每当我尝试我不断收到错误后,我试过sendgrid没有工作,现在我正在尝试使用mailgun但我也遇到了问题.

这是我的代码::

$data = array();

        Mail::send('emails.auth.activate', $data, function($message)
        {
            $message->to('xxxxxxxxx@gmail.com', 'John Doe')->subject('This is a demo!');
        });
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

GuzzleHttp \ Exception \ ClientException (400)

Client error response [url] https://api.mailgun.net/v2/mail.xxxxxxx.com/messages.mime [status code] 400 [reason phrase] BAD REQUEST 
Run Code Online (Sandbox Code Playgroud)

邮件配置:

<?php

return array(

    /*
    |--------------------------------------------------------------------------
    | 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", "log"
    |
    */

    'driver' => 'mailgun',

    'host' => 'sandboxXXXXXXXXXXXXXXXXXXXXXXXXXXX.mailgun.org',

    'port' => 587,

    'from' => array('address' => 'mail@xxxxxx.com', 'name' => 'Xxxxxxxx'),

    'encryption' => 'tls',

    'username' => 'xxxxxxx@gmail.com',

    'password' => 'xxxxxxxxxxx',

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

    'pretend' => true,

);
Run Code Online (Sandbox Code Playgroud)

小智 29

跟着这些步骤

  1. 首先,通过"guzzlehttp/guzzle": "~4.0"在内部添加线来安装guzzle包composer.json
  2. 使用更新作曲家 composer update
  3. http://www.mailgun.com/在mailgun上创建您的帐户.创建帐户后,请注意创建的邮件枪子域sandboxXXXXXXXXXXXXXXXXXXXXXXXXXXXX.mailgun.org和创建的API密钥一样key-65c33f1xxxxxxxxxxxxxxxxxxxx
  4. 转到config/services.php文件并替换

    'mailgun' => array(
        'domain' => '',
        'secret' => '',
    ),
    
    Run Code Online (Sandbox Code Playgroud)

    'mailgun' => array(
        'domain' => 'sandboxXXXXXXXXXXXXXXXXXXXXXXXXXXXX.mailgun.org',
        'secret' => 'key-65c33f1xxxxxxxxxxxxxxxxxxxx',
    ),
    
    Run Code Online (Sandbox Code Playgroud)

    如果要创建自己的子域,可以创建并分配给域(作为替代)

  5. config/mail.php像这样配置

    'driver' => 'mailgun',
    'host' => 'smtp.mailgun.org',
    'port' => 587,
    'from' => array('address' => 'mail@xxxxxx.com', 'name' => 'Xxxxxxxx'),
    'encryption' => 'tls',
    'username' => null,
    'password' => null,
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false
    
    Run Code Online (Sandbox Code Playgroud)

请注意,您无需为此提供用户名和密码.Mailgun会处理这个问题.

立即尝试发送电子邮件 希望这可以帮助.祝好运!


MMM*_*roy 10

只是想为错误添加一个可能的原因.当我还没有设置授权收件人时,我在使用沙盒模式时收到此错误.当我登录Mailgun并将预期收件人添加到"授权收件人"列表时,错误消失了.