Восклицательные знаки вставляются в электронные письма длиной около 1000 знаков


9

Иметь программу .NET, которая использует пространство имен System.Net.Main для отправки электронной почты через SMTP.

Он находится на сайте клиентов, поэтому оттуда он будет проходить через (серию?) SMTP-серверов ретрансляции, прежде чем достигнет пункта назначения.

На данный момент у меня нет информации об инфраструктуре воспроизведения / пересылки сообщений smtp (и получить эту информацию будет сложно).

Где-то вдоль строки восклицательный знак вставляется в длинные URL-адреса в электронном письме примерно через 100 символов от начала строки.

РЕДАКТИРОВАТЬ- На самом деле нашли около 1000 символов в

Этого не происходит ни в тестовой системе, ни в сотнях других сайтов.

Я уверен, что это как-то связано с escape-кодами, чтобы разбить длинные строки.

У кого-нибудь есть идеи?


Обнаружил не 100 символов в ссылке, около 1000 символов в сообщении. Это дает больше информации, но остается загадкой, почему только один клиент сообщил об этом. Возможно, некоторые SMTP-серверы более терпимы, чем другие? systemwebmail.com/faq/4.4.5.aspx
Райан,

Ответы:


11

Получил удар с этим сам.

Если вы создаете html-сообщение без возврата каретки, вы можете получить ошибки где-то около 1000 знаков.

Решение состоит в том, чтобы добавить несколько символов \ r \ n, чтобы каждая строка была меньше 1000 (или 988, если вы не считаете символы \ r \ n).

Смотрите раздел 2.1.1. Пределы длины линии RFC 2822 для более подробной информации:

2.1.1. Пределы длины линии

Существует два ограничения, которые этот стандарт устанавливает для количества символов в строке. Каждая строка символов ДОЛЖНА быть не более 998 символов и ДОЛЖНА быть не более 78 символов, исключая CRLF.


Спасибо - также смотрите обсуждения этого поста - systemwebmail.com/faq/4.4.5.aspx
Райан

RFC-2822-2.1.1, похоже, является скорее руководством и рекомендацией, чем принудительным правилом. Внешний вид, кажется, пострадал. На некоторые другие почтовые клиенты это не влияет.
Йо-

@YoYo Я бы сказал, что каждая строка символов ДОЛЖНА быть не более 998 символов, что будет правилом, но и ДОЛЖНА быть не более 78 символов, это будет скорее руководство и совет, чем правило.
sgmoore

Да, формулировка не допускает такой гибкости. Я должен согласиться.
YoYo

0

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


0

Не похоже, что приложение .Net вызывает проблему, если проблема не возникает на многих других сайтах, где работает тот же код. Является ли проблемный сайт за каким-то брандмауэром приложений или антиспамовым устройством, которое может контролировать поток smtp? В этом случае может существовать правило обрезания длинных URL-адресов, которое запускается, что приводит к сокращению URL-адресов в электронном письме.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.