Знак оклику вставляється в електронні листи зі знаком приблизно 1000 символів


9

Майте програму .NET, яка використовує простір імен System.Net.Main для надсилання електронного листа через SMTP.

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

На даний момент у мене немає інформації про цю інфраструктуру для відтворення / електронної пошти smtp (і отримати цю інформацію буде важко).

Десь уздовж рядка знак оклику вставляється в довгі URL-адреси в електронній пошті близько 100 символів від початку рядка.

EDIT - Фактично знайшли його близько 1000 символів у

Це не відбувається в тестовій системі або сотнях інших сайтів.

Я впевнений, що це має бути пов'язане з кодами втечі, щоб зламати довгі лінії.

Хтось мав якісь ідеї?


Виявив не 100 символів у посиланні, а приблизно 1000 символів у повідомленні. Це дає більше інформації, але все ще таємницю, чому тільки коли-небудь повідомляв один замовник. Можливо, деякі сервери smtp більш толерантні, ніж інші? systemwebmail.com/faq/4.4.5.aspx
Ryan

Відповіді:


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

@YoYo Я б сказав, що кожен рядок символів ОБОВ'ЯЗКОВО має містити не більше 998 символів, це було б правилом, але і ДОЛЖЕН бути не більше 78 символів, це було б більше настанов та порад, а не правила.
sgmoore

Так, формулювання не передбачає такої гнучкості. Я мушу погодитися.
YoYo

0

Зв'язування певної кількості символів зазвичай є проблемою для клієнта. Якщо ви не бачите його на інших сайтах або на тестовій машині, я не думаю, що це ваш код. Подивіться, якщо ви не можете дізнатись, який клієнт використовується для отримання повідомлення - це може бути якась кривава стара річ, яка автоматично обгортає певну кількість символів.


0

Це не здається, що додаток .Net викликає проблему, якщо проблема не відбувається на багатьох інших сайтах, де працює той самий код. Чи стоїть проблемний сайт, який стоїть за певним брандмауером програми чи пристроєм проти спаму, який може контролювати поток smtp? Якщо так, можливо, існує правило про обрізання довгих URL-адрес, що викликається, що призводить до скорочення URL-адрес електронної пошти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.