【问题标题】:How to send HTML message via Mimekit/Mailkit如何通过 Mimekit/Mailkit 发送 HTML 消息
【发布时间】:2017-04-30 20:12:21
【问题描述】:
BodyBuilder bodyBuilder = new BodyBuilder();
messageContent.Body = "<b>This is a test mail</b>";
bodyBuilder.HtmlBody = messageContent.Body;

我试图将我的身体嵌入健美运动员,但当我收到电子邮件时,它返回了一个空的身体。如果正文为空,我有一个异常会引发参数..

【问题讨论】:

    标签: c# mailkit mimekit


    【解决方案1】:

    像你一样使用BodyBuilder 可能是最简单的方法。

    var bodyBuilder = new BodyBuilder();
    bodyBuilder.HtmlBody = "<b>This is some html text</b>";
    bodyBuilder.TextBody = "This is some plain text";
    
    message.Body = bodyBuilder.ToMessageBody();
    
    client.Send(message);
    

    【讨论】:

    • 如果您只包含HtmlBody而不包含TextBody,是否存在仅包含一个而不包含两个可能被识别为垃圾邮件的风险?
    • 这可能取决于收件人的邮件软件
    • 更多真实世界样本?
    【解决方案2】:

    MimeKit Documentation - Creating Messages

    var message = new MimeMessage();    
    message.Body = new TextPart ("html") { Text = "<b>Test Message</b>" };
    

    "TextPart 是具有文本媒体类型的叶节点 MIME 部分。TextPart 构造函数的第一个参数指定媒体子类型:plainhtml丰富的rtfxml。”

    【讨论】:

    • 我在让其他示例工作时遇到问题。这个很完美。谢谢!
    【解决方案3】:

    如果你想严格一点,这里还有一个选择;

    msg.Body = new TextPart(MimeKit.Text.TextFormat.Html) { Text = "<b>html content</b>" };
    

    【讨论】:

      【解决方案4】:
      var bodyBuilder = new BodyBuilder();
      bodyBuilder.HtmlBody = body;
      bodyBuilder.TextBody = "-";
      
      message.Body = bodyBuilder.ToMessageBody();
      

      在某些邮件 ISP 中,您应该始终按值设置 bodyBuilder.TextBody。

      【讨论】:

        猜你喜欢
        • 2013-07-02
        • 1970-01-01
        • 1970-01-01
        • 2018-03-07
        • 2019-07-03
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多