我刚将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问题?防火墙问题?...
真的很感激一些帮助!
答案 0 :(得分:0)
好吧,你可以查看几件事:
•您的作品.env是否正确?
•您最近是否进行过作曲家安装?
•你确定dev和prod环境的php版本是一样的吗?因为Swift Mailer需要PHP 7.0或更高版本(proc_ *函数必须可用)。
答案 1 :(得分:0)
我不知道为什么它不起作用,感觉就像我尝试了一切。结束使用PHPMailer,这很好。