0

このコードを使用して、同僚にメールを送信しています。「\r\n」を使用しているときに、mailMessage.Body の部分が機能しません。次のように電子メールを表示する代わりに:

entity.PrimaryMeal.Title

entity.SecondaryMeal.Title

Porosine mund ta beni ketu: <> (これは私の言語 AL です)

次のように表示されます。

entity.PrimaryMeal.Title、entity.SecondaryMeal.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);
    }
}
4

2 に答える 2

5
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";
    }
于 2013-10-29T08:08:42.340 に答える
1

HTMLメールを送ったほうがいいと思います。つまり<br/>、\r\n の代わりに置き、メッセージ本文の種類を HTML に設定する必要があります。

于 2013-10-29T08:11:33.013 に答える