我无法使用Laravel通过mailgun发送邮件

时间:2015-03-17 22:28:46

标签: php laravel mailgun

我正面临发送电子邮件的问题。我的网站是用Laravel构建的。我正确设置了文件。这发生在2个文件中。

第一个包含“驱动程序”,当然是mailgun,“host”(smtp.mailgun.org),“port”(587并根据我的提供商打开),“encryption”(tls),“username “和”密码“(两者都有正确的值)。

第二个包含“域名”和“秘密”(也都包含正确的值)。

域名不是mailgun域,而是我自己的域,在设置域验证和DNS后处于ACTIVE状态。

mailgun域仍然存在ACTIVE。我不知道是否必须删除它或其他东西。我真的不知道我在这里缺少什么。


重要更新

Class 'GuzzleHttp\Client' not found

我收到了那条消息


mail.php

return array(

    'driver' => 'mailgun',

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

    'port' => 587,

    'from' => array('address' => 'not-reply@xxxxxxxxx.com', 'name' => 'xxxxxxx'),

    'encryption' => 'tls',

    'username' => "xxxxxxxxxxxxxx",

    'password' => "xxxxxxxxxxxxxx",

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

    'pretend' => false,

);

显然,xxxxxxxxxx是我的个人资料。我可以保证我正在设定正确的价值观。它确实应该有效。 :(

services.php

return array(

    'mailgun' => array(
        'domain' => 'domain-here',
        'secret' => 'key-here',
    ),

    'mandrill' => array(
        'secret' => '',
    ),

    'stripe' => array(
        'model'  => 'User',
        'secret' => '',
    ),

);

domainsecret也填充了正确的值。

2 个答案:

答案 0 :(得分:1)

@manix建议它似乎是正确的方法,但建议使用的版本3.9已弃用。所以它应该是:

"guzzlehttp/guzzle": "~4.0"

由于我使用 Laravel 4.2构建项目

Laravel 5.0 应为5.0

答案 1 :(得分:0)

尝试直接要求guzzle依赖。

  1. "guzzle/guzzle": "~3.9@dev"添加到composer.json,例如:

    "require": {
        "laravel/framework": "5.0.*",
        "guzzle/guzzle": "~4.0"
    },
    
  2. 更新您的项目。以下命令应在终端/控制台中执行。例如,如果您的laravel应用程序托管在Windows计算机中,则执行以下操作:

    > cd project/folder/path // change the working path
    > composer update // this command update the proyect and dependencies
    

    如果laravel在linux机器上受到影响,你可以:

    $ cd /path/a/mi/folder   // change the working path
    $ composer update   // this command update the proyect and dependencies
    
  3. 再次测试您的申请