提问人:Ivan Debono 提问时间:9/7/2023 最后编辑:Ivan Debono 更新时间:9/7/2023 访问量:34
显示纯文本消息而不是 HTML 消息
Plain text message is displayed instead of HTML message
问:
我正在使用 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 版本会正确显示。但是,在浏览器中查看消息时,将显示纯文本版本。
我是否缺少某些设置?
答:
1赞
Ivan Debono
9/7/2023
#1
问题解决了。
文本部分的顺序(如果重要),从最后一个开始:
var multipart = new Multipart("alternative")
{
new TextPart(MimeKit.Text.TextFormat.Text) { Text = messagePlain },
new TextPart(MimeKit.Text.TextFormat.Html) { Text = messageHtml }
};
评论