简体   繁体   English

如何使用 Mailgun 和 Laravel 发送电子邮件?

[英]How to send Email using Mailgun and Laravel?

I have a Contact page with a Contact Form on it.我有一个带有联系表格的联系页面。 I'm using Laravel and Vue js.我正在使用 Laravel 和 Vue js。 I've been sending test emails using Mailtrap on my localhost and everything works great.我一直在我的本地主机上使用 Mailtrap 发送测试电子邮件,一切正常。 After deploying my App to GoDaddy, I am now using Mailgun to send email.将我的应用程序部署到 GoDaddy 后,我现在使用 Mailgun 发送电子邮件。 I removed these settings in my .env file:我在 .env 文件中删除了这些设置:

#MAIL_MAILER=smtp
#MAIL_HOST=smtp.mailtrap.io
#MAIL_PORT=2525
#MAIL_USERNAME=xxxxxx
#MAIL_PASSWORD=xxxxxx
#MAIL_ENCRYPTION=tls

And now I have only these settings in my .env file:现在我的 .env 文件中只有这些设置:

MAIL_MAILER=mailgun
MAILGUN_DOMAIN=highrjobs.com
MAILGUN_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

I'm getting this error on Live Production site, after I click Submit, it says: server error .我在 Live Production 站点上收到此错误,单击“提交”后,它显示: server error

I looked in storage/logs/laravel.log file and it gives me this error: prod.ERROR: Connection could not be established with host smtp.mailtrap.io :stream_socket_client(): unable to connect to tcp://smtp.mailtrap.io:2525 (Connection refused) {"exception":"[object] (Swift_TransportException(code: 0): Connection could not be established with host smtp.mailtrap.io :stream_socket_client(): unable to connect to tcp://smtp.mailtrap.io:2525 (Connection refused) at /home/ymq6es2sf6km/highrjobs/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:269)我查看了 storage/logs/laravel.log 文件,它给了我这个错误: prod.ERROR: Connection could not be established with host smtp.mailtrap.io :stream_socket_client(): unable to connect to tcp://smtp.mailtrap.io:2525 (Connection refused) {"exception":"[object] (Swift_TransportException(code: 0): Connection could not be established with host smtp.mailtrap.io :stream_socket_client(): unable to connect to tcp://smtp.mailtrap.io:2525 (Connection refused) at /home/ymq6es2sf6km/highrjobs/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:269)

Why is it still trying to connect to mailtrap via smtp, I'm overriding these settings in my .env file as listed above.为什么它仍然试图通过 smtp 连接到 mailtrap,我在上面列出的 .env 文件中覆盖了这些设置。

Here is my config.php file:这是我的 config.php 文件:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Default Mailer
    |--------------------------------------------------------------------------
    |
    | This option controls the default mailer that is used to send any email
    | messages sent by your application. Alternative mailers may be setup
    | and used as needed; however, this mailer will be used by default.
    |
    */

    'default' => env('MAIL_MAILER', 'mailgun'),

    /*
    |--------------------------------------------------------------------------
    | Mailer Configurations
    |--------------------------------------------------------------------------
    |
    | Here you may configure all of the mailers used by your application plus
    | their respective settings. Several examples have been configured for
    | you and you are free to add your own as your application requires.
    |
    | Laravel supports a variety of mail "transport" drivers to be used while
    | sending an e-mail. You will specify which one you are using for your
    | mailers below. You are free to add additional mailers as required.
    |
    | Supported: "smtp", "sendmail", "mailgun", "ses",
    |            "postmark", "log", "array"
    |
    */

    'mailers' => [
        'smtp' => [
            'transport' => 'smtp',
            'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
            'port' => env('MAIL_PORT', 587),
            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
            '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',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Global "From" Address
    |--------------------------------------------------------------------------
    |
    | You may wish for all e-mails sent by your application to be sent from
    | the same address. Here, you may specify a name and address that is
    | used globally for all e-mails that are sent by your application.
    |
    */

    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'test@test.com'),
        'name' => env('MAIL_FROM_NAME', 'Highr Jobs Inc. - Support Team'),
    ],

    /*
    |--------------------------------------------------------------------------
    | Markdown Mail Settings
    |--------------------------------------------------------------------------
    |
    | If you are using Markdown based email rendering, you may configure your
    | theme and component paths here, allowing you to customize the design
    | of the emails. Or, you may simply stick with the Laravel defaults!
    |
    */

    'markdown' => [
        'theme' => 'default',

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

];

and I added this in services.php:我在 services.php 中添加了这个:

'mailgun' => [
        'domain' => env('MAILGUN_DOMAIN'),
        'secret' => env('MAILGUN_SECRET'),
        'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
    ],

Can somebody please help?有人可以帮忙吗?

Everything in my code was good.我的代码中的一切都很好。 I ran these two commands and now it works!我运行了这两个命令,现在它可以工作了!

php artisan cache:clear
php artisan config:cache

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM