首页 > 解决方案 > Laravel 电子邮件验证流程

问题描述

我正在尝试在我们的实时服务器上使用 Laravel 7.x 设置电子邮件验证,并遇到一些连接问题。因此,我可以按照以下几行运行简单的 Swift 代码:

  try {     
            // Create the SMTP transport
            $transport = (new Swift_SmtpTransport('my-mail-relay.something.ca'));
            $mailer = new Swift_Mailer($transport);
            // Create a message
            $message = new Swift_Message();
            $message->setSubject('Test!');
            $message->setFrom(['my@email.com' => 'tom']);
            $message->addTo('test@email.com', 'test');
            // Set the plain-text part
            $message->setBody('Test.');
            // Set the HTML part
            $message->addPart('Test<br>TEST.', 'text/html');
            // Send the message
            $result = $mailer->send($message);
        } catch (Exception $e) {
            echo $e->getMessage();
        }

这导致电子邮件通过 smtp 服务器等正确发送。但是,当我在 .env 和 config/mail.php 中设置所有相同的参数时,我总是超时,我尝试在 laravel 的邮件服务内部消除对端口的需求但是(也许很明显)以这种方式收到其他错误。

同时,我在我们的服务器上设置了 sendmail 并尝试在 /etc/mail/sendmail.mc 中设置 smtp 服务器,现在它发送电子邮件但它们总是以垃圾邮件告终,而当通过使用上述代码的 smtp 服务器可以正常工作。

.env,并不是说有很多东西要展示:

MAIL_MAILER=smtp
#MAIL_MAILER=sendmail
MAIL_HOST= *******************
# MAIL_USERNAME= ************
# MAIL_PASSWORD= ******************
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=************
MAIL_FROM_NAME=*************

邮件.php:

'mailers' => [
        'smtp' => [
            'transport' => 'smtp',
            'host' => env('MAIL_HOST', '**********'),
            'port' => env('MAIL_PORT', 587),
            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
            'username' => env('MAIL_USERNAME'),
            'password' => env('MAIL_PASSWORD'),
            'timeout' => null,
            'auth_mode' => null,
        ],

        ... etc

        'sendmail' => [
            'transport' => 'sendmail',
            'path' => '/usr/sbin/sendmail -bs',
            'host' => env('MAIL_HOST', '***********'),
            'port' => env('MAIL_PORT', 587),
            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        ],
    ],

任何人都有任何正确设置的经验可以为我指明正确的方向吗?

谢谢,汤姆

标签: phplaravelemailswiftmailerweb-development-server

解决方案


推荐阅读