2012-05-22 3 views
0

Когда получено электронное письмо, которое генерирует ошибку, как лучше всего отскакивать сообщение? Например, вы храните файл в db.BlobProperty, но приходит электронное письмо, превышающее лимит 1 м. Таким образом, для запроса требуется ошибка отказов, поэтому электронное письмо не будет ударять по серверу и увеличивать счет каждые 15 минут. (Не спрашивайте меня, как я знаю: -P ... на самом деле это не отдельная, но связанная с этим проблема, которую я опубликовал в другом вопросе. here)Обработка входящей электронной почты при ошибках с помощью приложения Python

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

Обычно почтовый сервер обрабатывает отказы, например, когда вы отправляете на плохой адрес и возвращает ошибку клиенту/серверу. Я искал и не нашел ничего полезного в этом. YMMV

Есть ли недокументированная функция? Каков правильный ответ на возврат, чтобы исходный сервер прекратил отправку?

ответ

2

Невозможно отсканировать сообщение, когда оно поступит в приложение App Engine. У вас есть два варианта:

  1. Послать пользователь «подпрыгивать сообщение» самостоятельно с помощью исходящей почты API
  2. Молча удалить сообщение

В любом случае, вы должны установить исключение верхнего уровня обработчик (такие как webapp и webapp2 имеют поддержку для этого), который регистрирует исключение, выполняет соответствующее действие и затем возвращает код состояния 200 вместо 500, поэтому сообщение не будет повторно отправлено повторно.

В вашем конкретном случае я также начал хранить вложения в blobstore вместо свойства blob, чтобы избежать ограничения 1 МБ.

+0

Спасибо, Захват исключения остановил повторную доставку. Я уже думал о проблеме из-за опыта работы с почтовым администратором много лет назад. Что касается blobstore, я согласен, поэтому я упомянул об этом в другом вопросе. Удовлетворительно слышать, как вы покидаете команду App Engine, и желаем вам наилучшего в ваших новых раскопках. Вы один из самых полезных членов в вопросах, связанных с Stack for App Engine. Если у вас есть возможность взглянуть на мой [другой] (http://stackoverflow.com/questions/10695851/receiving-email-attachments-in-app-engine-python-errors-on-unicode-text-file) вопрос. –

Смежные вопросы