2013-10-29 31 views
0

我使用此代码向我的同事发送邮件。 mailMessage.Body中的部分,当我使用“\ r \ n”时不起作用。相反,显示了类似电子邮件这样的:代码中的新行不起作用

entity.PrimaryMeal.Title

entity.ScondaryMeal.Title

Porosine mund TA贝尼克图:<>(这是我语言AL)

它显示这样的:

entity.PrimaryMeal.Title,entity.ScondaryMeal.Title。 Porosine mund ta beni ketu:<>

我在做什么错了?

private void SendMail(string MailReciever) 
{ 
    Configuration configuration = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath); 
    MailSettingsSectionGroup mailSettingsSectionGroup = (MailSettingsSectionGroup)configuration.GetSectionGroup("system.net/mailSettings"); 

    string MailSender = mailSettingsSectionGroup.Smtp.From; 
    string Username = mailSettingsSectionGroup.Smtp.Network.UserName; 
    string UserPassword = mailSettingsSectionGroup.Smtp.Network.Password; 
    string SmtpServer = mailSettingsSectionGroup.Smtp.Network.Host; 
    int Port = mailSettingsSectionGroup.Smtp.Network.Port; 
    bool UseSsl = mailSettingsSectionGroup.Smtp.Network.EnableSsl; 
    bool UseDefaultCredentials = mailSettingsSectionGroup.Smtp.Network.DefaultCredentials; 

    using (SmtpClient smtpClient = new SmtpClient()) 
    using (MailMessage mailMessage = new MailMessage()) 
    { 
     mailMessage.To.Add(MailReciever); 
     mailMessage.From = new MailAddress(MailSender); 
     mailMessage.Subject = ConfigurationManager.AppSettings["NewMailSubject"]; 

     smtpClient.Host = SmtpServer; 
     smtpClient.UseDefaultCredentials = UseDefaultCredentials; 
     smtpClient.Port = Port; 
     smtpClient.Credentials = new NetworkCredential(Username, UserPassword); 
     smtpClient.EnableSsl = UseSsl; 

     #region MailMessageBody 

     var entity = Factory.Orders.List(item => item.OrderDate == DateTime.Today).ToList().FirstOrDefault(); 

     if (entity.SecondaryMealId == -1) 
     { 
      mailMessage.Body = entity.PrimaryMeal.Title + ".\r\nPorosine mund ta beni ketu: http://10.200.30.11:8888"; 
     } 

     else if (entity.TertiaryMealId == -1) 
     { 
      mailMessage.Body = entity.PrimaryMeal.Title + ",\r\n" + entity.SecondaryMeal.Title + ".\r\nPorosine mund ta beni ketu: http://10.200.30.11:8888"; 
     } 

     else 
     { 
      mailMessage.Body = entity.PrimaryMeal.Title + ",\r\n" + entity.SecondaryMeal.Title + ",\r\n" + entity.TertiaryMeal.Title + ".\r\nPorosine mund ta beni ketu: http://10.200.30.11:8888"; 
     } 

     #endregion 

     mailMessage.IsBodyHtml = true; 

     smtpClient.Send(mailMessage); 
    } 
} 
+0

您如何阅读“身体”?通过Visual Studio,还是通过您的邮件客户端? – CodingIntrigue

+0

也许你应该使用'
' – wudzik

+0

@Rraham我不太清楚如何回答这个问题,但我使用Visual Studio(webForms)通过Outlook发送邮件 – etritb

回答

4
mailMessage.IsBodyHtml = true; 

您发送电子邮件作为的Html(而忽略原料换行),你应该添加<br>标签,而不是(或段落工作)。

if (entity.SecondaryMealId == -1) 
    { 
     mailMessage.Body = entity.PrimaryMeal.Title + ".<br>Porosine mund ta beni ketu: http://10.200.30.11:8888"; 
    } 

    else if (entity.TertiaryMealId == -1) 
    { 
     mailMessage.Body = entity.PrimaryMeal.Title + ",<br>" + entity.SecondaryMeal.Title + ".\r\nPorosine mund ta beni ketu: http://10.200.30.11:8888"; 
    } 

    else 
    { 
     mailMessage.Body = entity.PrimaryMeal.Title + ",<br>" + entity.SecondaryMeal.Title + ",<br>" + entity.TertiaryMeal.Title + ".<br>Porosine mund ta beni ketu: http://10.200.30.11:8888"; 
    } 
1

我认为它更好地发送HTML邮件。这意味着您需要将<br/>而不是\ r \ n并将邮件正文类型设置为HTML。