Laravel не отправляет электронные письма в процессе производства

У меня есть приложение Laravel, которое отправляет электронное письмо каждый раз, когда пользователь хочет сбросить свой пароль. На моем компьютере все работает нормально, но когда я загрузил его на свой VPS-сервер (работает на Ionos и с установленным Plesk Obsidian), электронные письма не отправляются, ошибки не отображаются. Электронное письмо отправляется в очередь заданий, и задание также успешно завершается без ошибок.

Я попытался подключиться по ssh со своего сервера, и вот ответ:

openssl s_client -connect smtp.ionos.es:587 -starttls smtp

CONNECTED(00000003)
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
verify return:1
depth=0 C = DE, ST = Rheinland-Pfalz, L = Montabaur, O = 1&1 IONOS SE, CN = smtp.ionos.es
verify return:1
---
Certificate chain
 0 s:C = DE, ST = Rheinland-Pfalz, L = Montabaur, O = 1&1 IONOS SE, CN = smtp.ionos.es
   i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
 1 s:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
   i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGvzCCBaegAwIBAgIQAkvpQmOcYv666PeadD8D0zANBgkqhkiG9w0BAQsFADBe
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMR0wGwYDVQQDExRHZW9UcnVzdCBSU0EgQ0EgMjAxODAe
Fw0yMDA3MjIwMDAwMDBaFw0yMjA3MjcxMjAwMDBaMGoxCzAJBgNVBAYTAkRFMRgw
FgYDVQQIEw9SaGVpbmxhbmQtUGZhbHoxEjAQBgNVBAcTCU1vbnRhYmF1cjEVMBMG
A1UECgwMMSYxIElPTk9TIFNFMRYwFAYDVQQDEw1zbXRwLmlvbm9zLmVzMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6FtGm46MqN3f1fS/zNhm0OCqcQ4
jjjyr+cjPC811xNJtGADBdS6ymiXrUd5dPNaJhj2JHt8wbw/tw+ycfNlg91pmQkh
GpT54giFDLZWOkSc54EDOgOcO6k34ZOoeOXRyhch3GAEak5+WJwGM7LedkTZjILL
d/MgwE6tR4bsagiuNdVozA2HtQEjEIlwD9ZyVGkmrV24xAqSER6H1BOD1YZhaISh
tikdS7zRJEPrw2KDz4kmxg/Na8LAVVzI4LonYYi1J9tsuK0UpZVLQlhSYFCsck4Q
cUmRHqIHrlHd6p0mW9kgRzaGYEsZvuhBhDW/I2+4qpvsfx3Y+mBAs0gPOQIDAQAB
o4IDazCCA2cwHwYDVR0jBBgwFoAUkFj/sJx1qFFUd7Ht8qNDFjiebMUwHQYDVR0O
BBYEFEyvAZrDZHHPO08pdOz6DlFloFJ1MGEGA1UdEQRaMFiCDXNtdHAuaW9ub3Mu
ZXOCDHBvcC5pb25vcy5lc4INaW1hcC5pb25vcy5lc4INc210cC4xYW5kMS5lc4IM
cG9wLjFhbmQxLmVzgg1pbWFwLjFhbmQxLmVzMA4GA1UdDwEB/wQEAwIFoDAdBgNV
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwPgYDVR0fBDcwNTAzoDGgL4YtaHR0
cDovL2NkcC5nZW90cnVzdC5jb20vR2VvVHJ1c3RSU0FDQTIwMTguY3JsMEwGA1Ud
IARFMEMwNwYJYIZIAYb9bAEBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRp
Z2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQICMHUGCCsGAQUFBwEBBGkwZzAmBggrBgEF
BQcwAYYaaHR0cDovL3N0YXR1cy5nZW90cnVzdC5jb20wPQYIKwYBBQUHMAKGMWh0
dHA6Ly9jYWNlcnRzLmdlb3RydXN0LmNvbS9HZW9UcnVzdFJTQUNBMjAxOC5jcnQw
DAYDVR0TAQH/BAIwADCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHYAKXm+8J45
OSHwVnOfY6V35b5XfZxgCvj5TV0mXCVdx4QAAAFzdV59fQAABAMARzBFAiAstDPu
ooEGKD4VxkFAgGyboZZmgGTcyHuin7+nUOFuswIhAIibYRxOJHTbTsAbWHtz1Xep
9Est6w/SUGVZQbJ3AHUBAHYAIkVFB1lVJFaWP6Ev8fdthuAjJmOtwEt/XcaDXG7i
DwIAAAFzdV59rgAABAMARzBFAiB4U2uTuGB5UNEroxCpQk05wJD9/Ee4oRfprcG7
UzBflgIhAI2CUcvStJim7VxSwfDpR1okdjZ6FfvtQ9IUw8F/iMllAHYAQcjKsd8i
RkoQxqE6CUKHXk4xixsD6+tLx2jwkGKWBvYAAAFzdV59SwAABAMARzBFAiEAhV0T
vEnjBOq8LGjruVELVDUywDFbWgxEo1CBAc8kHMMCIGWaDeTcgEZFC6ch2W9g8ZSL
7ZCkA9TfwQVgc7WSRxmKMA0GCSqGSIb3DQEBCwUAA4IBAQAKFvzVNIuW7Tv0IuLn
tyUoaLpjGZHoS6aeLLGHiFhaSSG7nr1yeCal3zpbiPKAFzoKAXmotGMlIiDvK0V+
mlriU/wpGrESAx450FmOb30JUQ5t1tsdAZ0H1L66wTfC5m0JCavPM7KnWn4seSao
AqSBy449b6vy31+I1JaAwzievZmE3QMPhO+OSBTRbs+MukO7NwnJ0xsOa3IGBG5+
v3xge1LeE0gUtRaDlSNjglhCROYRb050lkwQB/nNUVCCZOYBAUcIPEDhi2aJBin8
/tgsAcmDegDEOPSUzX1/LXwaBgPCDlo1wjb2bCK16TWA5NZ8bkmEzSk2HdR1/Vdj
MJfu
-----END CERTIFICATE-----
subject=C = DE, ST = Rheinland-Pfalz, L = Montabaur, O = 1&1 IONOS SE, CN = smtp.ionos.es

issuer=C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3657 bytes and written 418 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
250 STARTTLS

Но если я попробую с EHLO "I am here", я не получу ответа.

Это моя конфигурация .env:

MAIL_MAILER=smtp
MAIL_HOST=smtp.ionos.es
MAIL_PORT=587
MAIL_USERNAME=****
MAIL_PASSWORD=****
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=***
MAIL_FROM_NAME = "${APP_NAME}"

И вот я отправляю письмо:

<?php

namespace App\Mail\auth;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class RememberPassword extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * URL to reset password
     *
     * @var String
     */
    public $url;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(string $url, string $token)
    {
        $this->url = str_replace('{token}', $token, $url);
        $this->url = str_replace('%7Btoken%7D', $token, $url);
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this
            ->view('email.auth.remember-password');
    }
}

Как я могу узнать, что мешает отправке электронных писем в рабочей среде?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
596
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Добавить в "config/mail.php"

'stream' => [
   'ssl' => [
       'allow_self_signed' => true,
       'verify_peer' => false,
       'verify_peer_name' => false,
   ],
],

и

Измени это

MAIL_ENCRYPTION=ssl

Это сделает соединение небезопасным, не так ли? Он все еще работает в локальной сети, поэтому проблема должна быть в сервере.

Daniel Vivas 10.12.2020 09:27
Ответ принят как подходящий

ЗАФИКСИРОВАННЫЙ

Когда я пытался использовать учетную запись Gmail, она работала, но не с Outlook. В конце концов, я зашел в почтовый ящик и, похоже, Outlook использует службу под названием Spamhaus, это список IP-адресов спама. Моя служба по какой-либо причине классифицировала электронное письмо как СПАМ, и Outlook отбрасывал все электронные письма.

Другие вопросы по теме