MailMessage отклонен 4.3.1 сервером, но находится под лимитом обмена

Я просмотрел несколько ответов, таких как этот, но обратите внимание, что это другое.

  • У меня есть реализация MailMessege и SmtpServer в классе С#.NET, где я пытаюсь отправить вложения при ошибке лабораторного прибора.
  • Вот в чем дело: я связался с ИТ-отделом, и они сказали, что наш сервер обмена настроен на ограничение максимального размера сообщения в 50 000 КБ.
  • Однако если я отправлю сообщение с вложением размером более
    14 500 КБ, сообщение получит

Превышен объем хранилища. Ответ сервера был следующим: 4.3.1 Размер сообщения превышает фиксированный максимальный размер сообщения.

Большую часть времени мы будем меньше 10 МБ, так что это не имеет большого значения, но это просто не имеет смысла. ИТ-отдел предложил мне найти решение на стороне разработчиков, поскольку они считают, что оно должно быть реализовано.


person Keith    schedule 18.07.2017    source источник
comment
14500 КБ — это размер вашего документа, но он должен быть закодирован MIME, чтобы поместиться в сообщение электронной почты, что ужасно неэффективно и резко увеличит размер. Попробуйте отправить файл вручную (например, с помощью Outlook) и посмотрите, что произойдет. Честно говоря, если вы отправляете файлы такого размера, вам следует рассмотреть альтернативные методы, например, поместить их на веб-сервер и вместо этого отправить ссылку.   -  person DavidG    schedule 18.07.2017
comment
Промежуточный smtp-сервер также может иметь собственный лимит на размер вложения...   -  person Jimbot    schedule 18.07.2017
comment
@Jimbot: я связался с другой стороной нашего ИТ-отдела. ваш комментарий заставил меня понять, что сервер, через который я отправляю (внутренний сервер), может иметь другое ограничение, чем корпоративный сервер, о котором я спрашивал. Если это окажется причиной, вы должны отправить ответ, чтобы я мог его принять.   -  person Keith    schedule 18.07.2017


Ответы (2)


Любой промежуточный SMTP сервер также может иметь собственное ограничение на размер вложения. Вы можете проверить в заголовке сообщения, какой сервер ретранслирует электронную почту.

person Jimbot    schedule 19.07.2017
comment
Оказывается, сервер, через который я отправлял, отличался от сервера o365, о котором мне сказали ИТ-специалисты 50 МБ, оба внутренние для нашей корпорации. у отправляющего сервера было ограничение в 20 МБ, а из-за 137% MIME-раздувания ограничение эффекта составляло около 14 МБ. Теперь я переключился на отправку через сервер o365, оставив мне около 30 МБ (+ раздувание) для вложений. - person Keith; 19.07.2017

14500 КБ — это размер вашего документа, но он должен быть закодирован MIME, чтобы поместиться в сообщение электронной почты, что ужасно неэффективно и резко увеличит размер. Попробуйте отправить файл вручную (например, с помощью Outlook) и посмотрите, что произойдет. Если вы посмотрите здесь, то увидите формулу для расчета приблизительных размеров, которые вам действительно нужны. .

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

Честно говоря, если вы отправляете файлы такого размера, вам следует рассмотреть альтернативные методы, например, поместить их на веб-сервер и вместо этого отправить ссылку.

person DavidG    schedule 18.07.2017
comment
он не может реально раздуть файл в 3 раза по сравнению с первоначальным размером, не так ли!? И да, есть решения получше, но мы должны сделать то, что можем, за ограниченное время, а на сегодняшний день не существует подходящего веб-сервера. Кроме того, количество случаев, когда это так велико, редко, поэтому мне не нужно эффективное решение. - person Keith; 18.07.2017
comment
эта формула, на которую вы ссылаетесь, говорит, что вложение должно составлять 137% файла или 19,8 МБ. это имело бы смысл для ограничения в 20 МБ (в сообщении есть некоторый дополнительный контент, помимо вложения), но ИТ-отдел говорит мне, что ограничение составляет 50 МБ ... что-то все еще не складывается - person Keith; 18.07.2017
comment
Итак, есть еще один сервер, который на самом деле блокируется, проверьте цепочку, чтобы увидеть, где он застрял. Кроме того, в вашем вопросе слишком много нулей? :) - person DavidG; 18.07.2017