在 .NET 中向电子邮件添加内容描述

Posted

技术标签:

【中文标题】在 .NET 中向电子邮件添加内容描述【英文标题】:Adding Content-Description to email in .NET 【发布时间】:2019-03-04 11:10:35 【问题描述】:

我正在尝试在电子邮件中设置 MIME 内容描述字段。我使用 AlternateView 设置了 Content-Type 和 Content-Tranfer-Encoding,但找不到添加 Content-Description 的方法。

我可以做的是使用自定义标头设置 Content-Description,但这似乎为整个电子邮件插入单个 Content-Description,而不是 MIME 对象。

using( MailMessage mailMessage = new MailMessage() )

    mailMessage.From = new MailAddress( _configuration.FromAddress );
    mailMessage.BodyEncoding = Encoding.UTF8;
    mailMessage.To.Add( to );
    mailMessage.Subject = subject;

    // add the MIME data
    var irisB2View = AlternateView.CreateAlternateViewFromString( body );
    irisB2View.ContentType = new ContentType( "Application/EDI-consent" ); // Content-Type
    irisB2View.TransferEncoding = TransferEncoding.Base64; // Content-Tranfer-Encoding
    mailMessage.AlternateViews.Add( irisB2View );

    // this adds Content-Description, but it appears before the MIME data
    mailMessage.Headers.Add( "Content-Description", "IRIS/B2/Z" );

    client.Send( mailMessage );

这会产生如下形式的电子邮件,在 MIME 对象之前带有 Content-Description:

Content-Description: IRIS/B2/Z
MIME-Version: 1.0
From: xxxxxx@xxxxxx.xx
To: xxxxxx@xxxxxx.xx
Date: 28 Sep 2018 13:49:51 +0200
Subject: subject
Content-Type: Application/EDI-consent
Content-Transfer-Encoding: base64

有人知道我怎样才能将 Content-Description 放入 MIME 内容中吗?

同样,邮件没有边界(我只有一个 MIME 对象),那么 Content-Description 在 MIME 对象之前真的重要吗?

提前致谢。

【问题讨论】:

【参考方案1】:

RFC 2045 指定在单个部分消息中,MIME 标头字段用于常规 RFC 822 标头的上下文中。 RFC 822 没有对标头字段施加顺序。因此,Content-Description 字段的位置并不重要。

【讨论】:

以上是关于在 .NET 中向电子邮件添加内容描述的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Symfony 中向电子邮件添加附件?

在DataTable中向多个收件人发送电子邮件

如何在 next-auth 中向客户端 API 添加数据?

如何在EmailMessage中向嵌入图像添加“名称”标题

在 Eloquent ORM 中向模型添加字段

如何在文档字段而不是集合字段中向Firebase添加数据?