Выравнивание текста при отправке почты

#asp.net #email #alignment

#asp.net #Адрес электронной почты #выравнивание

Вопрос:

Я учусь ASP.Net от новичков Wrox ASP.Net 4.0. Здесь я отправляю письмо со своего веб-сайта на свою почту. Для этого я создал текстовый файл в папке App_Data и написал некоторый контент, такой как:

 Name:          ##Name##
E-mail address:##Email##
Comments:      ##Body##
  

При отправке формы я заменил это содержимое следующим соответствующим содержимым:

 string filename = Server.MapPath("~/App_Data/ContactForm.txt");
string mailBody = File.ReadAllText(filename);
mailBody = mailBody.Replace("##Name##", Name.Text);
mailBody = mailBody.Replace("##Email##", EmailAddress.Text);
mailBody = mailBody.Replace("##Comments##", Comments.Text);
  

и отправил почтовый ящик на мою почту. Мой вывод в почте был похож:

 Name:                           Andrew Thomas
E-mail address:         andrew@voxcode.com
Comments:                       Its a great Site. But would like to see more of Spanish songs.
  

Почему мое содержимое не выровнено так, как в текстовом файле шаблона. У меня есть много полей, кроме имени, электронной почты и комментариев. И все они сильно не выровнены. Что я должен сделать, чтобы выровнять их перед отправкой на мою почту. Я ожидал, что моя почта будет:

 Name:                   Andrew Thomas
E-mail address:         andrew@voxcode.com
Comments:               Its a great Site. But would like to see more of Spanish songs.
  

Я не уверен, что CSS может здесь помочь.

Спасибо.

Ответ №1:

Если вы хотите идеального выравнивания, я рекомендую вам использовать таблицы в вашем сообщении как таковое:

 <table border="0">
<tr>
<td>
Name:</td><td>##Name##</td>
</tr>
<tr><td>
E-mail address:</td></td>##Email##</td>
</tr>
<tr><td>
Comments:</td><td>##Comments##</td>
</tr>
</table>
  

Пример:

 MailMessage mm = new MailMessage();

string filename = Server.MapPath("~/App_Data/ContactForm.txt");
string mailBody = File.ReadAllText(filename);
mailBody = mailBody.Replace("##Name##", Name.Text);
mailBody = mailBody.Replace("##Email##", EmailAddress.Text);
mailBody = mailBody.Replace("##Comments##", Comments.Text);
mm.Body=mailBody;
mm.IsBodyHtml=true;
  

Комментарии:

1. Я использую текстовый файл в App_Data. Как я могу использовать таблицы там??

2. Не имеет значения, является ли текстовый файл. Вы можете ввести HTML-код в текстовые файлы и убедитесь, что вы установили IsHtml свойство тела письма в true

3. но я считаю, что это увеличит размер файла на lot….to будет отправлено по почте. и вы имеете в виду IsBodyHtml текст письма

4. @rapsalands Я только что опубликовал пример.

5. @rapsalands Нет, это не сильно увеличит размер файла. Да, я имел в виду IsBodyHtml

Ответ №2:

Я подозреваю, что ваш шаблон содержит вкладки и что когда вы его читаете, они преобразуются в пробелы. Проверьте, что исходный файл содержит только пробелы или табуляции.

Комментарии:

1. Хорошо, это потому, что строка с надписью «Email:» в вашем шаблоне изменилась на «Адрес электронной почты:» в ваших выходных данных, и ваши вкладки больше не выравниваются. Вам нужно разобраться с этим

2. Я пытался заменить табуляции пробелами, это не работает. Я пытаюсь заменить электронную почту на адрес электронной почты, он все еще не работает.