.IsBodyHtml=true会发送一个空的电子邮件正文,但.IsBodyGtml=false会发送正文内容

本文关键字:正文 IsBodyGtml false 电子邮件 一个 true IsBodyHtml | 更新日期: 2023-09-27 18:29:38

我有一个WCF服务,它根据用户输入发送电子邮件。我注意到,最近,一个特定用户的电子邮件在发送时没有任何正文。如果.IsBodyHtml设置为true,则不传输正文文本;但是,如果.IsBodyHtml设置为false,则正文具有适当的文本
然而,这似乎并不一致,因为似乎只有当所述用户的电子邮件地址设置为"发件人"地址时才会发生这种情况

技术详细信息:
我们有一个MS Exchange邮件服务器。我正在编写一个MailMessage对象,将其传递给内置的SMTP类以发送消息

为了简洁/清晰,代码被简化了一点。尽管如此,原始代码还是相当标准/直接的。email指的是LINQ到SQL类对象

MailMessage message = new MailMessage();
message.From = new MailAddress(email.fromAddress);
message.To.Add(email.toRecipient);
message.Subject = email.emailSubject;
//set email body
message.IsBodyHtml = true;
message.Body = email.emailBody;
Attachment attachmentFile = null;
if (email.hasAttachment == true)
{
    //retrieve attachments for emailID
    var attachments = from attach in db.EmailAttachments
                      where attach.emailID == emailID
                      select attach;
    foreach (var attachment in attachments)
    {//attach each attachment
        string filePath = Path.Combine(UPLOAD_DIRECTORY, emailID.ToString(), attachment.fileName);
        attachmentFile = new Attachment(filePath);
        message.Attachments.Add(attachmentFile); //set attachment from input path
    }
}
SmtpClient client = new SmtpClient(SMTP_SERVER, SMTP_PORT); //set SMTP server name/URL and port
client.Send(message); //try to send the SMTP email

.IsBodyHtml=true会发送一个空的电子邮件正文,但.IsBodyGtml=false会发送正文内容

由于问题与用户有关,因此可能与该用户的设置有关。

以该用户身份登录并打开outlook

选择:文件->选项->邮件

向下滚动至"消息格式"部分

可能"选择了转换为纯文本格式"将其更改为"转换为HTML格式"