C#发送的电子邮件在Outlook桌面客户端中显示不完美

C#发送的电子邮件在Outlook桌面客户端中显示不完美,c#,asp.net,wcf,outlook,email-client,C#,Asp.net,Wcf,Outlook,Email Client,我正在用C#发送一封带有WCF服务的电子邮件 发送电子邮件的代码如下- MailMessage message = new MailMessage { Subject = BuildStringFromTemplate(subject, notificationEmail.Values), Body = BuildStringFromTemplate(body, notificationEmail.Values), From = new MailAddress(!stri

我正在用C#发送一封带有WCF服务的电子邮件

发送电子邮件的代码如下-

MailMessage message = new MailMessage
{
    Subject = BuildStringFromTemplate(subject, notificationEmail.Values),
    Body = BuildStringFromTemplate(body, notificationEmail.Values),
    From = new MailAddress(!string.IsNullOrEmpty(fromOverride) ? fromOverride : _from),
    IsBodyHtml = true
};

message.To.Add(new MailAddress(notificationEmail.Email));

try
{
    string messageId;

    if (notificationEmail.EventTypeId == EventType.CentralRatingSafetyContact.ToGuid() ||
        notificationEmail.EventTypeId == EventType.CentralRatingResultsContact.ToGuid())
    {
        message.Priority = MailPriority.High;
        messageId = SendRawEmailBySimpleEmailService(new[] { notificationEmail.Email }, message.Subject, message);
    }
    else
    {
        messageId = SendBySimpleEmailService(new[] { notificationEmail.Email }, message.Subject, message, ccEmails);
    }

    if (notificationEmail.EventTypeId == EventType.SurveyInviteEmail.ToGuid())
    {
        StudyRaterEmail studyRaterEmail = (StudyRaterEmail)notificationEmail;
        _preQualificationBl.CreateSurveyHistory(studyRaterEmail.SurveyRevisionId, studyRaterEmail.HystoryId,
            studyId, studyRaterEmail.EmailGuid,
            messageId, studyRaterEmail.EventTypeId, studyRaterEmail.ResendMessage, operatedBy);
    }
    else if (notificationEmail.EventTypeId == EventType.SurveyMemoEmail.ToGuid())
    {
        StudyRaterEmail studyRaterEmail = (StudyRaterEmail)notificationEmail;
        _preQualificationBl.CreateSurveyMemo(studyRaterEmail.SurveyId, messageId,
            studyRaterEmail.EventTypeId, operatedBy);
    }
    else
    {
        _eventNotificationBl.NotifyEmailSent(notificationEmail.EventTypeId, notificationEmail, messageId, operatedBy);
    }
}
catch (Exception ex)
{
    Errors.Add(ex);
}
此服务是从ASP.NETMVC4调用的

电子邮件发送得很完美

它在Gmail、雅虎甚至Outlook和OutlookWebApp中都是完美的

展望-

Outlook Web应用程序-

Gmail-

但它在Outlook桌面客户端中的显示并不完美-



如果我们将此电子邮件从outlook桌面客户端转发到另一封电子邮件,它也会再次出现

所以,它不仅没有显示在Outlook桌面客户端,但我不明白为什么会发生这种情况


有人能帮忙吗?

Outlook(桌面版)是我遇到过的最糟糕的电子邮件渲染器之一。有人知道它是否仍然使用词根来呈现HTML吗?问题不在于你的代码,而是你的HTML使用了Outlook显示不好的标记。网上有大量的资源和解决办法。如果你能发布一些电子邮件代码,我们就得看看有什么坏了,在哪里坏了@Equalsk Yes不幸的是,outlook仍然使用word呈现电子邮件。最新版本MOS2016使用word有其自身的渲染问题。