Мне было поручено программно создавать отчет и отправлять его по электронной почте в виде вложения каждый рабочий день. Это было сделано довольно легко с небольшой ошибкой, которую еще предстоит разгадать. Предполагаемый получатель, другая компания, получает электронное письмо, но не вложение. Приставка отлично работает внутри. Он отлично справляется со сторонними почтовыми службами, такими как Gmail и AOL (не смейтесь). Но, что бы я ни пытался, он не доставит предполагаемому получателю.
Автоматический сценарий написан на Python 3.2 и использует наш локальный сервер Exchange 2007 в качестве SMTP-сервера. Сообщение создается с помощью библиотеки Python "email" и должно соответствовать стандартам MIME (с использованием типов MIME в Python). У получателя есть сервер Exchange 2003, и у нас обоих есть спам-фильтры Barracuda. Кажется, что вложение не удаляется из нашего спам-фильтра, и мой ИТ-контакт, который у меня есть с другой компанией, не видит, что он приходит к ним. Что могло происходить?
P.S. Мне не удалось найти повторяющуюся проблему с помощью исследований, некоторые похожие, но не совсем одинаковые.
Проблема оказалась в какой-то странной проблеме с заголовком отправляемого электронного письма. Это все еще сбивает с толку, но следуя руководству от Вот Мне удалось отправить им письмо по электронной почте. До этого изменения электронные письма появлялись у сторонних поставщиков услуг электронной почты, таких как Gmail, без проблем, только не для компании, которая в них нуждалась.
Есть некоторые несовместимости между Exch2k3 и Exch2k7 / 10 в отношении обработки MIME. Я видел это на собственном опыте из Exch2k3 -> Exch2k7, когда сообщение приходит, но Outlook не может «видеть» вложение. Если вы посмотрите на размер сообщения, когда оно попадает на целевой шлюз, то сообщение будет содержать вложение.
Я не видел этого в Exch2k7 -> Exch2k3. Проблема возникала только при отправке сообщений в формате RTF (HTML и обычный текст были в порядке). Я только что попытался найти статью в MS KB, но нашел только хиты Exch 5.5. При рассмотрении этого вопроса основная проблема заключалась в том, что обработка MIME в Exch2k7 полностью соответствовала RFC, что говорит о некоторой вялости в реализации Exch2k3. Для конца Exch2k7 была работа, то есть сделать его, так сказать, более вялым. Однако я пошел по маршруту «отменить RTF».
Вы можете подтвердить формат вашего сообщения?