Mailkit TextPart IsHtml 内容类型检查不起作用

Mailkit TextPart IsHtml Content type check does not work

亲爱的朋友们,

 TextPart textPart = new TextPart();
    textPart.Text = body; // body contains the html text.
    if(textPart.IsHtml)
    {
    }else { }

文本部分 IsHtml 没有给我正确的结果。我知道我的正文包含 HTML 但它仍然处于其他状态。

然后我查看了这段对话,但是当我写的时候。它在 ContentType 上给出错误。 char不包含contentType的信息。

 var bodyii = textPart.Text.FirstOrDefault(x => x.ContentType.IsMimeType("text", "html"));

谁能指出我做错了什么?

textPart.IsHtml 不会检查 textPart.Text 是否包含 html 标签,它会检查 textPart.ContentType 是否匹配 text/html.当您使用默认构造函数创建 TextPart 时,它会创建 text/plain,而不是 text/html.

您需要使用:

TextPart textPart = new TextPart ("html");

您的以下代码:

var bodyii = textPart.Text.FirstOrDefault(x => x.ContentType.IsMimeType("text", "html"));

出现错误,因为 textPart.Textstring,这意味着您的 LINQ 表达式对 char 元素进行操作,而 char 没有 ContentType ] 属性.

换句话说,如果你这样做:

textPart.Text = "This is some text.";

然后你的 LINQ 表达式,使用 foreach 循环转换为更简单的 C# 代码,将如下所示:

char bodyii = 0;
foreach (char x in textPart.Text)
{
    if (x.ContentType.IsMimeType("text", "html"))
    {
        bodyii = x;
        break;
    }
}

你觉得这段代码有意义吗?它不应该,这就是编译器给您错误的原因。