C# 使用SendGrid发送纯文本电子邮件

C# 使用SendGrid发送纯文本电子邮件,c#,azure,email,sendgrid,C#,Azure,Email,Sendgrid,我试图从C#函数发送一封纯文本电子邮件;但是,生成的邮件带有HTML标记。我已将其缩减为以下控制台应用程序: static async Task Main(string[] args) { SendGridMessage msg = new SendGridMessage() { From = new SendGrid.Helpers.Mail.EmailAddress("noreply@test.com"), Subject = "test",

我试图从C#函数发送一封纯文本电子邮件;但是,生成的邮件带有HTML标记。我已将其缩减为以下控制台应用程序:

static async Task Main(string[] args)
{
    SendGridMessage msg = new SendGridMessage()
    {
        From = new SendGrid.Helpers.Mail.EmailAddress("noreply@test.com"),
        Subject = "test",
        PlainTextContent = "Hello"
    };
    msg.AddTo(new SendGrid.Helpers.Mail.EmailAddress("my@address.com", "test recipient"));            

    SendGridClient client = new SendGridClient("mykey");
    Response response = await client.SendEmailAsync(msg);

    Console.WriteLine(response.StatusCode);
    Console.ReadLine();

}
它可以很好地发送电子邮件,但在电子邮件上查看源代码会显示为HTML格式:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body>
<p>Hello</p>

<img src="https:// ... />
</body></html>
我知道没有中间人可以重新格式化邮件,因为我可以从outlook向自己发送一封纯文本电子邮件

我正在使用SendGrid 9.9.0,但我尝试了9.8.0,以防它最近发生了变化

我是否遗漏了一些东西,或者我希望SendGrid能够做一些它不能做的事情?

摘自

首先,登录到SendGrid帐户,单击“设置”,然后单击“邮件” 设置”,并下拉普通内容设置,然后放置 选中“不将明文转换为HTML”选项中的复选标记。一定要 保存此设置


标准似乎是电子邮件同时使用HTML和纯文本发送,因此纯文本版本也会自动转换为HTML。

在发送之前,
SendGridMessage
Contents
属性的值是多少?我猜它包含HTML,您只需要从列表中删除该条目。仅仅是一个猜测,根据数据。我自己没有使用过SendGrid。这也是一个非常重要的问题,您如何执行消息的操作
查看源代码
?内容为空。正如我上面所说的,如果我手动填充内容,那么它就是我设置的内容(例如“text/plain”、“msg”),但它对结果e没有影响-mail@astaykov右键单击outlook中的邮件并选择view Source是否尝试设置mime类型,即
msg.AddContent(MimeType.Text,“hello”)
(显然在构建对象时没有设置
明文内容
)谢谢-我确实看到了这一点,但我认为它是一个全局覆盖(当然,当你看到它的措辞方式时,它有点意义)看起来Sendgrid已经在一月份取消了此设置。不确定替代方案是什么:
var emailContent = new Content
{
    Type = "text/plain",
    Value = emailMessage
};
message.Content.Add(emailContent);