@HeBonpoc

Как настроить отправку почты с хостинга?

Я сейчас попытался digitalocean.com настроить отправку почты из PHP, ну и понятное дело столкнулся с тем, что раньше на хостингах для простых смертных было достаточно вызвать mail(), а в крайнем случае нажать пару кнопок в ISP panel, а теперь придется повозиться самому.
'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'useFileTransport' => false,
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.yandex.ru',
                'username' => 'login@yandex.ru',
                'password' => 'pass',
                'port' => '25',
                'encryption' => 'tls',
            ],
        ],

И порт 465 пробовал, и убирал encryption, и ставил его на ssl и гугл пробовал, но все без результатно. Выдавало
SWIFT MAILER ERROR : Expected response code 250 but got code " "
и то что скрипт завершился, т.к. кончились дефолтные 30 секунд, и что can't establish connection with smtp.yandex.ru и просто пустой контент, хотя там сразу после отправки var_dump кучи всего. Потом
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Я делал самодельный сертификат, что, естественно, не помогло убрать эту ошибку.
Направьте, пожалуйста.
  • Вопрос задан
  • 4380 просмотров
Решения вопроса 1
@HeBonpoc Автор вопроса
Если у вас возникнет такая же проблема, то попробуйте:
1. Поставить sendmail. У меня это было apt-get install sendemail
2. Прописать путь к sendemail в php.ini. У меня это такая строчка sendmail_path = /usr/sbin/sendmail -t -i
3. К яндексу получилось подключиться с encryption tls и 25 портом
4. Должно стоять расширение openssl. Если phpinfo() выдает, что openssl enabled и вы перезагрузили сервер, то это не значит, что расширение включено и работает. Это стало для меня открытием :( Нужно ещё прописать в php.ini extension=openssl.so
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
benbor
@benbor
Помог ответ - не забудь лайкнуть
Ответ не совсем по теме. Но контролировать и поддерживать свой сервак почтовый, без необходимости лишняя работа. Да, и письма ваши в спаме будут, без сертификатов. Есть куча сервисов доставки почты, которые освобождают нас (девелоперов) от лишней работы. Лично я использую sendgrid.net бесплатно 200 емейлов в день, есть rest api и smtp
Ответ написан
@glsv
'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@common/mail',
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.yandex.ru',
                'username' => '***',
                'password' => '***',
                'port' => '587',
                'encryption' => 'tls',
                'streamOptions' => [
                    'ssl' => [
                        'verify_peer' => false,
                        'verify_peer_name' => false,
                    ]
                ]
            ],
        ],
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы