我尝试使用本地主机在laravel中发送电子邮件,但既未从垃圾邮件中也未在收件箱中接收电子邮件,而已成功从laravel应用程序发送但未显示任何错误。这是我的控制器功能。
$user = $request->all();
Mail::send('emails.email', ['testVar' => $user], function ($m) use ($user) {
$m->from('[email protected]', $user['doctor_firstname']);
$m->to('[email protected]', $user['doctor_firstname']);
});
这是我的电子邮件模板。
<html>
<head></head>
<body>
{{ $testVar['doctor_firstname'] }}
</body>
</html>
这是.env文件设置。
MAIL_MAILER=mailgun
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
这是我的config/mail.php
文件
<?php
return [
'default' => env('MAIL_MAILER', 'smtp'),
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'ssl'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
],
'ses' => [
'transport' => 'ses',
],
'mailgun' => [
'transport' => 'mailgun',
],
'postmark' => [
'transport' => 'postmark',
],
'sendmail' => [
'transport' => 'sendmail',
'path' => '/usr/sbin/sendmail -bs',
],
'log' => [
'transport' => 'log',
'channel' => env('MAIL_LOG_CHANNEL'),
],
'array' => [
'transport' => 'array',
],
],
'from' => [
'address' => env('MAIL_FROM_ADDRESS', '[email protected]'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
];
什么是问题,因为我没有收到电子邮件,也没有任何错误。谢谢。
在您的环境中,MAIL_MAILER是邮枪。因此,此行'default' => env('MAIL_MAILER', 'smtp'),
首先查找env文件,如果mailgun是您的驱动程序,则mailgun服务需要mailgun键,如config / services.php所示,因此将MAIL_MAILER更改为.env文件中的smtp。附:我正在使用tls的ssl intead 465端口