- Вопрос или проблема
- Ответ или решение
- 1. Общее понимание проблемы
- 2. Проверка конфигурации вашего Discourse
- 2.1. Логирование
- 2.2. SMTP и его конфигурация
- 3. Анализ соединения SES
- 4. Возможные причины разрыва соединения
- 4.1. Ограничения со стороны Discourse
- 4.2. Ошибки NSA (Network Security Appliance)
- 5. Рекомендации по диагностике
- 5.1. Тестирование на локальном уровне
- 5.2. Отладка SMTP-соединений
- Заключение
Вопрос или проблема
Привет всем – я обращаюсь к SF с моим первым вопросом. У меня возникла проблема с электронной почтой.
У меня есть контактная форма, размещенная на carrd.co, которая использует SES для отправки электронной почты. Я использую это для отправки на самоуправляемый форум Discourse, который находится под моим контролем, используя его стандартный внутренний почтовый приемник.
Все работает в других комбинациях — но электронная почта SES не доходит до Discourse.
-
контактная форма carrd.co успешно отправляет на личные адреса электронной почты
-
форум Discourse успешно получает электронную почту от личных адресов электронной почты
-
при отправке с контактной формы carrd.co на Discourse, SES разрывает соединение на EHLO
Вот что мы видим в Wireshark:
12246 86.228748 54.240.69.230 64.176.213.39 SMTP 103 C: EHLO a69-230.smtp-out.amazonses.com
12247 86.228791 64.176.213.39 54.240.69.230 TCP 66 25 → 50903 [ACK] Seq=19 Ack=38 Win=44032 Len=0 TSval=958362939 TSecr=1554444418
12248 86.228963 64.176.213.39 54.240.69.230 SMTP 220 S: 250-forum-mail-receiver.localdomain | PIPELINING | SIZE 10240000 | VRFY | ETRN | ENHANCEDSTATUSCODES | 8BITMIME | DSN | CHUNKING
12253 86.236796 54.240.69.230 64.176.213.39 TCP 66 50903 → 25 [FIN, ACK] Seq=38 Ack=173 Win=28032 Len=0 TSval=1554444426 TSecr=958362939
Мне посоветовали, что только SES может объяснить, почему они разрывают соединение – но Carrd.co, похоже, не может получить доступ к журналам или предоставить больше информации.
Это первая проблема, с которой я столкнулся при получении электронной почты на Discourse. Насколько можно судить по тестированию на MXtoolbox, все в DNS, включая DKIM, правильно настроено.
Есть ли что-то, на что мне стоит обратить внимание со своей стороны, что может обычно заставить SES в частности разрывать соединение на EHLO, когда другие службы работают нормально?
Спасибо за любые предложения!
Ответ или решение
Вопрос о том, почему Amazon SES (Simple Email Service) разрывает соединение на этапе EHLO при отправке писем с вашей контактной формы, размещенной на carrd.co, к вашему саморазворачиваемому форуму Discourse требует внимательного анализа. Давайте рассмотрим вероятность всех потенциальных причин возникновения данной проблемы.
1. Общее понимание проблемы
Судя по предоставленной информации, ваш сценарий тестирования показывает, что Amazon SES успешно отправляет электронные письма на личные электронные адреса, но разрывает соединение при отправке на ваш Discourse форум. При этом Wireshark демонстрирует, что SES корректно отправляет команду EHLO и получает ответ от вашего форума, однако после этого происходит завершение соединения. Это может происходить по нескольким причинам.
2. Проверка конфигурации вашего Discourse
2.1. Логирование
Проверьте журналы (логи) вашего Discourse сыграют важную роль в диагностике данной проблемы. Возможно, в логах будут указания на причину разрыва соединения, такие как ошибки аутентификации или проблемы с настройками SMTP. Обратите внимание на уровни логирования; для получения более подробной информации может потребоваться включение режима отладки.
2.2. SMTP и его конфигурация
Убедитесь, что ваш Discourse правильно настроен для приемки электронной почты через SMTP. Протестируйте, работает ли прием почты от других SMTP-сервисов на данном сервере. Возможно, возникли проблемы с разрешением доменного имени или с доступностью порта.
3. Анализ соединения SES
При анализе пакетов, захваченных Wireshark, обращаем внимание на следующее:
-
Команда EHLO: Amazon SES успешно отправляет команду EHLO, а ваш сервер отвечает корректным сообщением о приветствии. Это означает, что в этой части связи нет явных ошибок.
-
Закрытие соединения (FIN, ACK): SES отправляет команду FIN, что говорит о завершении сессии. Это может указывать на внутренние политики ограничения или сущности, связанной с безопасностью сервера Discourse.
4. Возможные причины разрыва соединения
4.1. Ограничения со стороны Discourse
Возможно, ваш Discourse настроен на блокировку или ограничение входящих соединений по определенным критериям. Например, это могут быть правила фаервола или настройки CSP (Content Security Policy), которые блокируют определенный трафик.
4.2. Ошибки NSA (Network Security Appliance)
Если между SES и вашим Discourse установлены какие-либо сетевые устройства (например, маршрутизаторы или стены безопасности), то они могут блокировать специфические пакеты, опираясь на политику безопасности.
5. Рекомендации по диагностике
5.1. Тестирование на локальном уровне
Проверьте, сможете ли вы подключиться к Discourse локально или с другого SMTP-сервера и посмотрите, добьется ли это успеха. Это поможет изолировать проблему — касается ли она конкретно SES или вашей конфигурации Discourse.
5.2. Отладка SMTP-соединений
Используйте инструменты вроде telnet
или openssl
для тестирования соединения на порт SMTP Discourse (обычно 25, 587 или 465). Это позволит вам диагностировать проблемы с соединением до подачи EHLO.
Заключение
Проблема с разрывом соединения Amazon SES при отправке электронных писем на ваш Discourse форум, скорее всего, связана с конфигурацией вашего форума, правилами сетевой безопасности или настройками самого SMTP. Регулярная проверка логов, диагностика SMTP-соединений и тестирование с других сервисов могут помочь в выявлении источника проблемы. Если трудности сохраняются, проконсультируйтесь со службой поддержки Discourse для получения более углубленных рекомендаций.