Как улучшить почтовую надежность отправки и доставки?

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

На основе журналов сервера приложений было время почтового сервера пары outs, но это не объясняет все случаи недостающих электронных писем. Добавление опции повторной попытки помогло бы со временем проблеме, но является там какими-либо другими подходами для улучшения почтовой надежности в целом?

6
задан Benny Bottema 8 March 2018 в 12:54
поделиться

4 ответа

Это природа SMTP, которая не реализует целостность транзакционной.

Около 6 лет назад я сделал весьма ошеломленный анализ того, почему по почте от компании я работал, потом провалились. Я мог видеть, как и получая MTA, но это показало очень сильную корреляцию между типом MTA и скоростью отказов (в то время, Novell GroupWise и Sendmail на удаленном конце были самыми надежными, Msexchange наименее, с Qmail и другие в середине). Обратите внимание, что это было очень эмпирично, и могло бы отразить выбор продукта против доступных навыков, а не внутренних проблем в конкретных MTAS - и ее скорее устаревят. Также это не то, что вы можете эффективно контролировать.

Хотя, поскольку у вас есть возможность разработать и реализовать свою собственную логику на вершине MTA, нет никакой гарантии, что:

1) Если сообщение не удается после выхода из MTA, вы получите уведомление назад

2) Если вы отправляете сообщение с запросом DSN (см. RFC 1891), что удаленная система фактически отправит обратно DSN

самые важные вещи, которые вы можете сделать, чтобы улучшить доставку, состоит в том, чтобы узнать много о SMTP Составьте свой собственный MTA и настройте его соответственно. Один из ключевых проблем в наши дни состоит в том, что все пытаются остановить спам - и у каждого есть свой способ сделать это. И обычно они не скажут вам рецепт своего секретного соуса. Действительно, с фильтрацией байесов, они могут даже не знать!

Я думаю, что следующий порт вызова (после того, как вы проверили SPF, ограничивают и опубликовали, и что вы не RBL'd) было бы посмотреть, как вы устанавливаете, если ваша почта доставила - как я Сказал, вы не можете полагаться на DSNS. Вы не можете полагаться на ваши электронные письма (например, отправив их как HTML с помощью, например, большинство MUAS не загружают удаленный контент (снова для предотвращения спама). Что просто оставляет возможность сохранить содержимое серверсора и отправку кликабельной ссылки на исходный контент. Но это снова предполагает, что ваши получатели всегда хотят читать ваше сообщение.

c.

3
ответ дан 10 December 2019 в 00:38
поделиться

Настройте почтовый сервер качества производства, доступный для вашего приложения, и позвольте ему обработать все очень грязные детали надежных Отправка почты. Вы, вероятно, выберуте некоторые ограничения, такие как GrayListing, предназначенные для хранения спам-ботов.

Достопримечательно простой сценарий будет PostFix на машине Linux. Лично мне нравится Ubuntu

2
ответ дан 10 December 2019 в 00:38
поделиться

Thorbjørn и Symcbean оказывают как много полезной информации, но она может быть подавлена ​​в его полноте. Я постараюсь сделать это более доступным:

о худшем случае, которую вы можете сделать, это создать клиент SMTP в ваше приложение и полагаться на то, что отправить почту где-то в мире. Намного лучшее решение состоит в том, чтобы запустить «стандартный» MTA и / или SMTP-сервер в вашем собственном поле локально или, в худшем случае, внутри вашей собственной сети.

Итак, ваше приложение должно получить только почту, насколько ваш собственный почтовый сервер, который, надеюсь, будет на порту 25 на одной машине. Нет SSL кодировки, без спама фильтрации, а не куча вещей, которые могут пойти не так. Кроме того, если ваш почтовый сервер находится на одном и том же машине, что и ваше приложение, они будут (обычно) либо быть вниз или оба.

Как только ваше приложение нанесло свою почту в локальный почтовый сервер (который быстро и практически надежно), именно эта проблема сервера должна получить почту, отправленную в конечный пункт назначения. На сервере Linux вы будете иметь что-то вроде sendmail, qmail, exim или postfix; На окнах я не знаю.

Любой один из почтовых серверов «из коробки» очень компетентно на получение почты. Автоматический повтор уже встроен, с попытками после (например,) 1 час, 2 часа, 4, 12, 24 и 48 часов. Ваш почтовый сервер попробует его darndest, чтобы доставить вашу почту, и сделает это без дополнительных усилий с вашей стороны. Неудачные попытки появятся в журнале почтового сервера, и вы можете проанализировать, что и нарисовать свои выводы. Если он не удается после последней возможной попытки, также отмечается в файле журнала, и вы можете сделать вывод, что что-то не так на приемной стороне. Вся эта сила уже встроена, и вы даже не должны думать о попытке построить его в почтовый клиент самостоятельно.

Окончательное примечание: возможно, что передача будет успешным физически, то есть сообщение было доставлено, но затем он рассматривался как спам почтовым сервером или клиентом получателя; или (человеческий) получатель просто удалил его случайно. Программное обеспечение не будет решить эту проблему с уверенностью.

2
ответ дан 10 December 2019 в 00:38
поделиться

pydoc -p 8080

Сообщество python полужестко по отношению к автоматически создаваемой документации, особенно если оно ориентировано на объект. Python ориентирован не только на объекты (это язык нескольких парадигм), поэтому разработчики Python обычно предпочитают документацию, написанную человеком. Иногда функции важны, иногда важна структура класса.

-121--2585290-

Я давно использовал боковую панель питона из Эджуолла.

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

epy () {
    cmd="import $1 as a ; print a.__file__.endswith('.pyc') and a.__file__[:-1] or a.__file__" 
    file=$(/usr/bin/env python -c $cmd) 
    echo $file
    emacsclient --no-wait $file
}
-121--2585292-

Если вы просто хотите отправлять пару электронных писем в день конечному набору получателей и все это, попробуйте отправить их через счет gmail.

1
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

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