电子邮件适用于本地环境,但不适用于生产环境。没有任何错误

时间:2017-12-11 16:25:19

标签: php laravel email laravel-5 debian

我刚将laravel 5.5网站移动到服务器(digitalocean,debian9)。出于某种原因,电子邮件不会从我的服务器发送,而且我没有收到任何错误。

.ENV:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAILGUN_DOMAIN=MYDOMAIN
MAILGUN_SECRET=key-SECRET_KEY
MAIL_USERNAME=MYUSERNAME
MAIL_PASSWORD=MYPASSWORD
MAIL_ENCRYPTION=tls

配置/ mail.php:

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'MY_EMAIL'),
        'name' => env('MAIL_FROM_NAME', 'NAME'),
    ],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'markdown' => [
        'theme' => 'default',

        'paths' => [
            resource_path('views/vendor/mail'),
        ],
    ],
];

配置/ services.php:

'mailgun' => [
    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
],

发送邮件控制器:

public function sendMail( $id, Request $request )
{
    $user = User::find($id);
    $data = [
        'subject' => $request->subject,
        'bodyMessage' => $request->message,
        'image' => $request->image,
    ];

    Mail::to($user->email)
        ->send(new test($data));

    Session::flash('email', 'Message !');

    return back();
}

我查看了我的UFW防火墙,我看不到任何与邮件相关的内容。

当我尝试发送邮件时,我的电子邮件服务(mailgun)不会在日志中输出任何内容。所以我猜它甚至没有达到它们。

我不知道该做什么。我甚至不知道应该在哪里寻找问题,这是服务器问题吗? laravel问题?防火墙问题?...

真的很感激一些帮助!

2 个答案:

答案 0 :(得分:0)

好吧,你可以查看几件事:

•您的作品.env是否正确?

•您最近是否进行过作曲家安装?

•你确定dev和prod环境的php版本是一样的吗?因为Swift Mailer需要PHP 7.0或更高版本(proc_ *函数必须可用)。

答案 1 :(得分:0)

我不知道为什么它不起作用,感觉就像我尝试了一切。结束使用PHPMailer,这很好。