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

Pau*_*els 4 c# email azure sendgrid

我正在尝试通过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();

}
Run Code Online (Sandbox Code Playgroud)

它可以很好地发送电子邮件,但是在电子邮件上进行查看时,显示为HTML格式:

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

<img src="https:// ... />
</body></html>
Run Code Online (Sandbox Code Playgroud)

我尝试了各种组合,包括将HtmlContent设置为纯文本(这将导致电子邮件非常不同,但仍然不是纯文本),以及诸如以下的语法:

var emailContent = new Content
{
    Type = "text/plain",
    Value = emailMessage
};
message.Content.Add(emailContent);
Run Code Online (Sandbox Code Playgroud)

我知道没有中间人重新格式化该消息,因为我可以从Outlook向自己发送纯文本电子邮件。

我正在使用SendGrid 9.9.0,但是我尝试过9.8.0,以防它最近有所更改。

我是否在这里缺少某些东西,或者我希望SendGrid能够执行某些其无法执行的操作?

Len*_*oop 5

取自SendGrid在线文档:

首先,登录到您的SendGrid帐户,单击“设置”,然后单击“邮件设置”,然后下拉“纯内容”设置,然后在“不要将纯文本转换为HTML”选项中打勾。确保保存此设置。

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

  • 看起来 Sendgrid 已在一月份停用了此设置。不确定替代方案是什么:https://sendgrid.com/docs/ui/account-and-settings/retired-mail-settings/ (4认同)