在laravel中发送电子邮件

问题描述 投票:0回答:1

我尝试使用本地主机在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'),
        ],
    ],

];

什么是问题,因为我没有收到电子邮件,也没有任何错误。谢谢。

php laravel email
1个回答
0
投票

在您的环境中,MAIL_MAILER是邮枪。因此,此行'default' => env('MAIL_MAILER', 'smtp'),首先查找env文件,如果mailgun是您的驱动程序,则mailgun服务需要mailgun键,如config / services.php所示,因此将MAIL_MAILER更改为.env文件中的smtp。附:我正在使用tls的ssl intead 465端口

© www.soinside.com 2019 - 2024. All rights reserved.