Восклицательные знаки вставляются в электронные письма длиной около 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.

sgmoore
источник
Спасибо - также смотрите обсуждения этого поста - systemwebmail.com/faq/4.4.5.aspx
Райан
RFC-2822-2.1.1, похоже, является скорее руководством и рекомендацией, чем принудительным правилом. Внешний вид, кажется, пострадал. На некоторые другие почтовые клиенты это не влияет.
Йо-
@YoYo Я бы сказал, что каждая строка символов ДОЛЖНА быть не более 998 символов, что будет правилом, но и ДОЛЖНА быть не более 78 символов, это будет скорее руководство и совет, чем правило.
sgmoore
Да, формулировка не допускает такой гибкости. Я должен согласиться.
YoYo
0

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

Джош Бадд
источник
0

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

Фред Джонас
источник