Иметь программу .NET, которая использует пространство имен System.Net.Main для отправки электронной почты через SMTP.
Он находится на сайте клиентов, поэтому оттуда он будет проходить через (серию?) SMTP-серверов ретрансляции, прежде чем достигнет пункта назначения.
На данный момент у меня нет информации об инфраструктуре воспроизведения / пересылки сообщений smtp (и получить эту информацию будет сложно).
Где-то вдоль строки восклицательный знак вставляется в длинные URL-адреса в электронном письме примерно через 100 символов от начала строки.
РЕДАКТИРОВАТЬ- На самом деле нашли около 1000 символов в
Этого не происходит ни в тестовой системе, ни в сотнях других сайтов.
Я уверен, что это как-то связано с escape-кодами, чтобы разбить длинные строки.
У кого-нибудь есть идеи?
Ответы:
Получил удар с этим сам.
Если вы создаете html-сообщение без возврата каретки, вы можете получить ошибки где-то около 1000 знаков.
Решение состоит в том, чтобы добавить несколько символов \ r \ n, чтобы каждая строка была меньше 1000 (или 988, если вы не считаете символы \ r \ n).
Смотрите раздел 2.1.1. Пределы длины линии RFC 2822 для более подробной информации:
источник
Перенос на определенное количество символов обычно является проблемой клиента. Если вы не видите его на других своих сайтах или на тестовой машине, я не думаю, что это ваш код. Посмотрите, не можете ли вы выяснить, какой клиент используется для получения сообщения - это может быть какая-то грубая старая вещь, которая автоматически переносится на определенное количество символов.
источник
Не похоже, что приложение .Net вызывает проблему, если проблема не возникает на многих других сайтах, где работает тот же код. Является ли проблемный сайт за каким-то брандмауэром приложений или антиспамовым устройством, которое может контролировать поток smtp? В этом случае может существовать правило обрезания длинных URL-адресов, которое запускается, что приводит к сокращению URL-адресов в электронном письме.
источник