электронная почта отправлена ​​статус от рельсы или actionmailer - PullRequest
0 голосов
/ 24 декабря 2009

Я разрабатываю тестовое приложение и запускаю все это на своем рабочем компьютере. Я использую свой корпоративный почтовый сервер для отправки почты. Работает нормально нормально. Мне было интересно, как справиться с любыми условиями, например, если почтовый сервер недоступен с моего компьютера. Насколько я читал об этом, приложение rails просто отправляет почту и все. Невозможно узнать, дошло ли письмо до получателя, правильно ли указан идентификатор получателя и т. Д. Есть мысли о том, как справиться с этим сценарием? Спасибо и С уважением, Анджали

Ответы [ 2 ]

1 голос
/ 25 декабря 2009

Я полагаю, что вы смешиваете две проблемы здесь, на самом деле они совершенно не связаны.

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

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

Но в обоих случаях вы не получите никакой информации о том, куда сообщение было доставлено конечному получателю - например, был ли адрес электронной почты действительным, почтовый ящик пользователя не был заполнен и т. Д.

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

Это то, как это делается в программном обеспечении для управления списками рассылки - например, phpList работает точно так же.

0 голосов
/ 25 декабря 2009

Я думал об этой проблеме. Я думал о том, чтобы сохранить сообщение в отдельной модели, называемой «mailqueue», а затем запустить скрипт ruby, который будет извлекать и удалять сообщения из этой очереди, только если корпоративный почтовый сервер доступен (у меня уже есть код для этого, Я верю). Конечно, если есть лучший способ, я бы тоже его приветствовал.

...