Как вставить разрывы строк при отправке электронной почты?
Ни "\n", ни "
" не работают. Я пытаюсь вставить разрыв строки при отправке по электронной почте содержимого пользовательской формы:
protected void SubmitBtn_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
StringBuilder mailBody = new StringBuilder();
mailBody.Append("Company Name: " + companyText.Text.Trim() + "\n\n");
mailBody.Append("Name: " + firstNameText.Text.Trim() + " "
+ lastNameText.Text.Trim() + "\n\n");
mailBody.Append("Email: " + emailText.Text.Trim() + "\n\n");
if(!String.IsNullOrEmpty(tradeText.Text))
mailBody.Append("Trade: " + tradeText.Text.Trim() + "\n\n");
bool success = SendEmail(emailText.Text.Trim(),
companyText.Text.Trim(), "SubContractors Form Submission",
mailBody.ToString());
}
}
private bool SendEmail(string email, string name,
string subject, string message)
{
using (MailMessage mail = new MailMessage())
{
mail.From = new MailAddress(BlogSettings.Instance.Email, name);
mail.ReplyTo = new MailAddress(email, name);
mail.To.Add(BlogSettings.Instance.Email);
mail.Subject = subject;
mail.Body += message;
if (Utils.SendMailMessage(mail).Length > 0)
{
return false;
};
}
return true;
}
ОБНОВИТЬ:
Я получил
работу в конце концов. Причина, по которой это не сработало, заключалась в том, что это был оригинальный код, который я получил из контактной формы:
mail.Body += message.Replace("\n\n", "<br />");
MailMessage.IsBodyHtml
в коде библиотеки ядра установлено значение true.
3 ответа
Ты можешь использовать:
оператор Environment.NewLine при использовании по умолчанию MailMessage.IsBodyHtml = False mode;
реализовать разрыв строки через тег "br", если для режима MailMessage.IsBodyHtml установлено значение True.
Я думаю, используя AppendLine
скорее, чем Append
должно работать на то, что вы делаете:
StringBuilder mailBody = new StringBuilder();
string company = companyText.Text.Trim();
string firstName = firstNameText.Text.Trim();
string lastName = lastNameText.Text.Trim();
string email = emailText.Text.Trim();
string trade = tradeText.Text.Trim();
mailBody.AppendFormat("Company Name: {0}", company).AppendLine();
mailBody.AppendFormat("Name: {0} {1}", firstName, lastName).AppendLine();
mailBody.AppendFormat("Email: {0}", email).AppendLine();
if(!string.IsNullOrEmpty(trade))
{
mailBody.AppendFormat("Trade: {0}", trade).AppendLine();
}
bool success = SendEmail(email, company, "SubContractors Form Submission",
mailBody.ToString());
добавленной AppendFormat()
для ясности
созданные переменные для устранения нескольких .Trim()
в том же тексте в нескольких случаях
адаптированный AppendFormat().AppendLine()
как описано здесь для производительности: когда вы используете StringBuilder.AppendLine/string.Format против StringBuilder.AppendFormat?
Ты ищешь Environment.NewLine
,
mailBody.Append("Email: " + emailText.Text.Trim() + Environment.NewLine);