Новая настройка: ошибки при отправке писем через Gmail

Здравствуйте,

Я развернул Discourse на своем частном облаке под управлением Ubuntu Server 16.04. Установка прошла успешно.

Сейчас у меня возникла проблема при тестировании настройки электронной почты. Я ввел правильные данные, но письма не приходят. Я использовал ту же конфигурацию в другом Node.js приложении, и там всё работает.

Где я мог ошибиться?

Вот моя конфигурация:

DISCOURSE_HOSTNAME: forum.smartly.ai
DISCOURSE_DEVELOPER_EMAILS: 'smartly.retailbanking@gmail.com'
DISCOURSE_SMTP_ADDRESS: smtp.gmail.com
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: smartly.retailbanking@gmail.com
DISCOURSE_SMTP_PASSWORD: "xxxxx"
DISCOURSE_SMTP_ENABLE_START_TLS: false 

Я в тупике. Заранее спасибо за ваши ответы.

Использование Gmail в качестве SMTP-сервера противоречит условиям использования Gmail и не поддерживается.

Я использовал ту же конфигурацию в приложении на Node.js. Я авторизовал этот тип приложения в настройках безопасности своей учетной записи, и всё работает отлично.

Не поддерживается ли Discourse в приложении Gmail, даже если я включил доступ для менее защищенных приложений в настройках Gmail? В таком случае, какую конфигурацию мне следует использовать?

Не совсем понятно, почему это работало в вашем другом приложении, но это всё равно нарушает правила использования Gmail. Список рекомендованных почтовых сервисов можно найти здесь: discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub

Вы уверены в этом? Я только что обнаружил эти ограничения:

Gsuite и Gmail — это не одно и то же. Судя по вашему примеру выше, вы используете Gmail.

Использование почтового сервиса будет проще. Если вы не ищете простое решение проблемы с настройкой почты, то мои советы, вероятно, не помогут.

Если

@Canapin Указанное выше имя пользователя заканчивается на @gmail.com, поэтому документация G Suite к нему не применима. G Suite — это их платный сервис, так что да, это нарушение их Условий использования.

Мы не можем помочь вам нарушить вполне разумные правила, установленные Google, особенно когда существуют бесплатные и поддерживаемые альтернативы.

Спасибо за ваш ответ. Я попробовал с Gsuite, но это тоже не работает. Я использовал адрес электронной почты, добавленный через Gsuite, и разрешил использование SMTP из внешних приложений. Результат тот же. Я думаю, что попробую SendGrid или что-то другое, что поддерживает Discourse.

Я не рекомендую использовать GSuite для отправки почты, но один клиент недавно последовал этим инструкциям и отправляет почту через GSuite.

Я следовал тем же инструкциям в этой ссылке, но у меня всё та же проблема. Поэтому я создал новую учётную запись в Mailjet. Теперь, когда я запускаю ./discourse-doctor, он сообщает, что письмо отправлено. Однако в моём почтовом ящике ничего нет. Я также добавил новую DNS-конфигурацию для Mailjet, чтобы разрешить отправку писем с адреса моего домена, но письма всё равно не приходят, даже несмотря на то, что система сообщает об их отправке.
PS: моя папка «Спам» пуста.

На мой взгляд, использовать Gmail или G Suite в качестве сервиса транзакционной почты для ЛЮБОГО веб-сайта, включая Discourse, — это категорически недопустимо, ведь для этого они не предназначены!

Попробуйте Mailgun (он даже бесплатен для 10 000 писем в месяц!) или ознакомьтесь со статьёй здесь, чтобы узнать об альтернативах.

Это не совсем точно.

GSuite действительно позволяет отправлять электронную почту, что подтверждается документом, на который приведена ссылка выше. Однако, если превысить установленные лимиты, это может привести к ограничению работы всей вашей учетной записи GSuite.

Предпочтительно использовать одного из рекомендованных поставщиков почтовых услуг. Если вы решите воспользоваться другим, то ответственность за его корректную работу лежит на вас.

Возможно, это не совсем точно, но ни один профессионал не посоветует использовать Gmail или Gsuite для отправки транзакционных писем. Поэтому я считаю, что это недопустимо. Конечно, если TS хочет попробовать заставить это работать, это его дело!

Тогда, пожалуйста, не выдавайте мнение за факт.

TIL я не профессионал ¯\_(ツ)_/¯

Вам нужно проверить логи в Mailjet. Как и сказал discourse-doctor, проблема не в Discourse.

Согласен. (За исключением, возможно, некоторых низконагруженных любительских сайтов. Но даже в этом случае проще настроить Mailgun или аналогичный сервис.)

Верно.