2011-11-11 1 views
1

Я хотел бы добавить символы Unicode в текстовое сообщение электронной почты, отправляемое через SMTP. Наша реализация основана на System.Net.Mail .NET, который позволяет легко указать Unicode кодирующего этого путь:Юникод в SMTP: по какой-то причине?

message.BodyEncoding = System.Text.Encoding.UTF8; 

Даже английский, переход на Unicode позволит мне включить пункты маркированных (Unicode код точка U +2022 = •) в тексте электронной почты. Альтернативный элемент электронной почты HTML позволяет использовать элементы <ul> для маркированных списков, но для электронной почты с обычным текстом я хотел бы, чтобы решение было менее уродливым, чем использование астериков или тире для пуль.

Есть ли недостаток в использовании кодировки Unicode в SMTP? Должен ли я беспокоиться о том, что некоторые получатели не смогут получать или читать электронную почту из-за этой кодировки?

+0

Вы не должны беспокоиться о SMTP - это транспорт и будет обрабатывать любой контент. Получатели - если вы не отправляете некоторым наркоманам Unix, которые используют читатели электронной почты в командной строке в системе, не обновляемой для использования Unicode - вы в порядке –

+0

По умолчанию SMTP не поддерживает перенос 8-битных данных, таких как UTF-8. Либо SMTP-сервер должен поддерживать расширения 8BIT для протокола SMTP, и клиент должен запросить их использование, либо электронное письмо должно быть закодировано в транспортной кодировке с 7-мя битками, например, «base64» или «quoted-printable». –

ответ

1

Есть несколько слоев на этот вопрос, я считаю.

Во-первых, необработанный протокол SMTP не обрабатывает UTF-8. Тем не менее, есть широко развернутые расширения, которые добавляют эту поддержку, и это не должно быть проблемой, если ваш код использует правильную магию. Реализация, которую вы упомянули, вероятно, достаточно хороша.

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

Если вы знаете своих вероятных получателей, я бы рекомендовал тестирование с их настройками.

1

Я не знаю ни одного почтового клиента, который не поддерживает Unicode в настоящее время. Во всяком случае, предпочтительным будет короткий тест (по крайней мере, спросите своих клиентов, какой почтовый клиент они используют). Недостаток увеличения размера сообщения не учитывается, если у вас не будет необычно больших сообщений.

(примечание в стороне: я уже привык к звездочкам в простых текстовых сообщениях электронной почты, они действительно так некрасиво)

Смежные вопросы