Проблема заполнения текстового сообщения электронной почты с использованием PadRight в С#

У меня есть вопрос относительно кодирования текстовых сообщений электронной почты с использованием С# .net, потому что у меня есть простой ASCII, но при заполнении для форматирования сообщения пользователю данные не выстраиваются в линию, хотя когда я проверяю строки, скажем, в NotePad ++, они точно тот же номер символа. Ниже приведен код, может ли кто-нибудь сказать мне, что я делаю неправильно?

StringBuilder oSB = новый StringBuilder(); oSB.AppendLine(EmailLine("Сумма", oTrans.PaymentAmount.ToString())); oSB.AppendLine(EmailLine("Способ оплаты", oTrans.CardType)); частная статическая строка EmailLine(string FieldLabel, string FieldVal) { return PadLabel(FieldLabel) + FieldVal ; } частная статическая строка PadLabel(string FieldLabel) { return FieldLabel.PadRight(40, char.Parse(" ")) + ": "; }

Мой вывод выглядит так:

Сумма : 100.00

Способ оплаты: ВИЗА


person user437534    schedule 22.10.2010    source источник


Ответы (1)


Выстраиваются они или нет, зависит от шрифта, используемого для отображения электронной почты. Это настройка почтового клиента. Например, вот где я бы установил его в Outlook:

альтернативный текст

Попробуйте изменить шрифт в Notepad++ на Times new Roman и Courier, и вы увидите, что они выстраиваются по-разному.

У вас нет контроля над шрифтом пользователя, если вы отправляете его в виде планового текстового сообщения. Лучшее, что вы можете сделать, это указать «Лучше читать шрифтом ___» или отформатировать его как HTML, где у вас есть некоторый контроль.

Другие варианты включают вывод этого в файл PDF или изображение (опять же, где у вас больше контроля).

person David    schedule 22.10.2010