显示纯文本消息而不是 HTML 消息

问题描述 投票:0回答:1

我正在使用 Mailkit 发送消息。这就是我正在做的事情:

var multipart = new Multipart("alternative")
{
    new TextPart(MimeKit.Text.TextFormat.Html) { Text = messageHtml },
    new TextPart(MimeKit.Text.TextFormat.Text) { Text = messagePlain }
};

var mimeMessage = new MimeMessage()
{
    Subject = emailTemplate.Subject,
    Body = multipart
};
mimeMessage.From.Add(new MailboxAddress(fromName, fromEmail));
mimeMessage.To.Add(new MailboxAddress(name, email));

using (var client = new SmtpClient())
{
    await client.ConnectAsync(options.Server, options.Port.Value, SecureSocketOptions.Auto, ct);
    await client.AuthenticateAsync(Encoding.UTF8, options.Username, options.Password, ct);
    await client.SendAsync(mimeMessage, ct);
    await client.DisconnectAsync(true, ct);
}

HTML 版本的开头是这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="format-detection" content="telephone=no"><meta name="viewport" content="width=device-width, initial-scale=1.0">

邮件将发送至 Gmail 帐户。在移动设备上查看时,消息的 HTML 版本可以正确显示。但是,在浏览器中查看消息时,显示的是纯文本版本。

我是否缺少一些设置?

c# gmail mailkit
1个回答
0
投票

问题解决了。

文本部分的顺序(如果重要),从最后一个开始:

var multipart = new Multipart("alternative")
{
    new TextPart(MimeKit.Text.TextFormat.Text) { Text = messagePlain },
    new TextPart(MimeKit.Text.TextFormat.Html) { Text = messageHtml }
};
© www.soinside.com 2019 - 2024. All rights reserved.