Назад | Перейти на главную страницу

Как отследить исчезающее письмо?

У меня есть электронное письмо, созданное CMS, которое отправляется двум людям на разных хостах. Человек на хосте A всегда получает электронное письмо. Второй, на хосте B, никогда не работает.

CMS находится на сервере на хосте A. Два человека могут без проблем отправлять и получать электронную почту друг другу. Он проверил свой спам-фильтр, но их там нет. Я без проблем протестировал отправку электронного письма двум другим хостам.

Была проблема с пустым полем «От», но я исправил это, и он по-прежнему не получает электронное письмо.

Как лучше всего начать отслеживать, почему человек на хосте B никогда не получает электронное письмо, созданное с помощью CMS?

Есть много причин, по которым электронное письмо может быть заблокировано или отклонено. Однако электронная почта устроена таким образом, что она не должна просто исчезать. Он должен быть доставлен в почтовый ящик, в очереди или возвращен отправителю. Журналы MTA как хоста A, так и хоста B должны показывать попытку доставки и результат попытки. Я предполагаю, что у вас, вероятно, нет доступа к журналам MTA хоста b. Так что вам нужно выяснить, как решить эту проблему со своей стороны.

Веб-приложения могут быть немного сложными, хотя некоторые из них отправляют электронную почту с помощью простого SMTP-приложения или библиотеки, которая слепо пытается доставить электронное письмо с максимальной эффективностью. У них не всегда есть очереди для решения проблем с доставкой. Такие простые вещи, как серый список, могут вызвать сбои в доставке.

В худшем случае вы можете выполнить захват пакета, чтобы увидеть, как выглядит диалог между хостом A и хостом B. SMTP отправляется в виде открытого текста, поэтому WireShark может легко прочитать обмен между серверами.

Если у вас есть дополнительная информация о том, как CMS пытается отправить электронную почту и какое приложение MTA / smtp она использует, кто-то, вероятно, может указать вам файлы журнала, на которые вы должны посмотреть. Но в Linux /var/log/mail.log - хорошее место для начала.

Вы ничего не узнаете из захвата пакетов, если у вас нет MTA, который вы написали сами и который требует отладки.

Скорее всего, проблема связана с нижележащими хостами. К каким журналам у вас есть доступ? Попробуйте просмотреть журнал рассылки MTA в системе CMS и любой доступной вам вторичной системе MTA, которая используется для ретрансляции SMTP. Вы получаете статус 250 OK для доставки почты на удаленный хост B? Если да, то вы успешно доставили сообщение. Если нет, нам нужно больше подробностей о том, в чем была ошибка в вашем журнале, чтобы сообщить вам больше.

Проблема может заключаться в том, что следующему переходу не нравится ваша электронная почта. У него могут быть неправильные заголовки, испорченная кодировка MIME и т. Д., Которые вызывают отклонение без возврата, поскольку электронное письмо считается потенциально вредоносным, если оно не соответствует соответствующим RFC для формата электронной почты.

если ты являются Получив на вашем конце статус «250 OK Sent», единственное, что вы можете сделать, это попросить клиента на узле B поговорить со своим поставщиком услуг, интернет-провайдером или ИТ-отделом и спросить, что происходит с его электронной почтой и почему. Только журналы удаленного сайта расскажут историю, когда они не будут возвращать вам письмо.

Вы отправляете почту через почтовый сервер или только через SMTP-сервис? Когда электронные письма отправляются из приложений (например, вашей CMS), обычным выбором для доставки электронных писем является

  1. Почтовый сервер в сети (Exchange, другие)
  2. Служба SMTP (IIS SMTP, другие)

Вот в чем загвоздка. Если приложение (ваша CMS) находится в той же сети, что и почтовый сервер, то это предпочтительный выбор, поскольку почтовый сервер является почтовым отделением, назначенным для этого домена. Если, с другой стороны, приложение не имеет доступа к ретрансляции электронной почты через почтовый сервер и используется служба SMTP, обратите внимание на следующее.

Если SMTP будет отправлять напрямую внешним пользователям, вам необходимо убедиться, что IP (общедоступный) очищен от любых черных списков, убедитесь, что у вас есть правильные записи PTR, настроенные для обратного DNS другими почтовыми серверами, и, ради всего святого, отключите реле .

В вашем случае, если человек на HOST A находится в той же сети, что и CMS, он / она получит почту. Если HOST B находится в отдельной сети, возможно, почтовый сервер HOST B выполняет обратный поиск и не может определить, является ли SMTP допустимым почтовым сервером. Вам также необходимо правильно настроить MX.

Если оба пользователя находятся в одной сети, возможно, отправителю (с адреса, например, noreply@yourcompany.com) не разрешено отправлять сообщения этому пользователю. Разве вы не можете попросить администратора электронной почты отслеживать это письмо? (это если вы отправляете с почтового сервера.