将保存在磁盘上的eml文件加载到.net Mail.Message对象中

3

我在硬盘上保存了.eml文件,并且想编写一个类似于Sub LoadMessage(byval path as String)的 .net 方法。我该如何操作呢?

我使用的是 .Net 2.0 - C# 或 VB.Net 都可以。我应该使用给定文件打开一个文件流对象吗?但我不知道如何将其从流中读取到 Mail.Message 对象中。

1个回答

2
System.Net.Mail中没有允许您执行此操作的方法。您需要编写解析器,然后手动构建邮件消息。虽然这不是很难,但需要注意以下邮件结构:首先,您将拥有类似于HEADER-NAME:CONTENT的标题,标题以/r/n结尾,后面不跟随空格字符。如果标题具有/r/n,则表示标题值在下一行上继续。对于Content-Transfer-Encoding,您需要在消息正文中可能解码字节编码(Quoted-printable或Base64)。在标题之后,您将拥有电子邮件正文本身,该正文与标题由额外的行(\r\n\r\n)分隔开。这可能只是文本或HTML或其他东西,在这种情况下,只需按字面意义解析它并根据传输编码进行解码。正文的Quoted-printable编码与标题略有不同,请阅读RFC 2045、2046和2047。Base64编码的内容将在行之间具有换行符,但否则并没有什么特别之处。
如果您有附件等内容,则必须更加聪明。这些通常在正文之后,并且将具有Content-Type标头,该标头将告诉您如何解码附件以及有关其的一些信息,以及可能提供有关附件的一些元数据的Content-Disposition标头。附件通常基于64位编码。
最后,如果在消息的内容类型标头下看到multipart/mixed,则意味着您需要逐个解析每个部分。它将为您提供一系列字符,用于表示各部分之间的边界。然后,每个部分都将具有自己的Content-Type,以说明其是什么以及其他帮助描述该部分的标头。您将不得不解析出这些部分,然后手动解码它们,将附件写入内存流或文件中。
一旦您获得了所有这些,就可以在代码中重新创建电子邮件。 NCL团队曾经讨论过解决此需求的方式,但尚未决定任何事情,因此不能保证任何东西。
例如,以下是一个包含一些自定义标题、两个备选视图(一个文本,一个HTML)、用于HTML视图的链接资源(图像)和.txt附件的.eml文件的外观。我包括了一些Unicode,以便您可以看到编码机制。此处所示的示例公司、组织、产品、域名、电子邮件地址、徽标、人物、地点和事件均为虚构。没有与任何真实公司、组织、产品、域名、电子邮件地址、徽标、人物、地点或事件的关联意图或应被推断。

X-Sender: noreply@example.com X-Receiver: "Dave Barnett" X-SalesAgent: =?utf-8?B?VG9sbGV2c2VuLCBCasO4cm4=?= MIME-Version: 1.0 From: noreply@example.com To: "Dave Barnett" Reply-To: =?utf-8?Q?Tollevsen,_Bj=C3=B8rn?= X-Priority: 5 Priority: 非紧急 Importance: 低 Date: 2009年8月28日 13:03:40 -0700 Subject: 订单详情 Content-Type: multipart/mixed; boundary=--boundary_2_1e984f0b-dc01-4739-a9c2-8302dc7c9c15

----boundary_2_1e984f0b-dc01-4739-a9c2-8302dc7c9c15 Content-Type: multipart/alternative; boundary=--boundary_0_61ec80d2-1bf7-4554-922e-634e8e8a1067

----boundary_0_61ec80d2-1bf7-4554-922e-634e8e8a1067 Content-Type: multipart/related; type="text/html"; boundary=--boundary_1_e1f66bde-4086-4084-ad21-245b55a3d7a0

----boundary_1_e1f66bde-4086-4084-ad21-245b55a3d7a0 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64

PEhUTUw+PEJPRFk+WW91ciBvcmRlciBoYXMgYmVlbiByZWNlaXZlZC48YnIvPk9y ZGVyIDxhIGhyZWY9aHR0cDovL3d3dy5jb250b3NvLmNvbT5zdGF0dXM8L2E+PGJy Lz48aW1nIHNyYz0iY2lkOmNvbXBhbnlMb2dvIiAvPjwvQk9EWT48L0hUTUw+ ----boundary_1_e1f66bde-4086-4084-ad21-245b55a3d7a0 Content-Type: image/jpeg; name=logo.jpg Content-Transfer-Encoding: base64 Content-ID:

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYE BAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQIC AgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAwMDAz/wAARCAAvAPUDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9 /KKKy/G3jTS/hz4S1HXdbvI9P0nSYGubu4cErFGoyTgAkn0ABJPABNVCEpyUIK7e yJnOMIuc3ZLVt7JGpRXz1/w9V+An/Q+f+UTUf/ketHwl/wAFKvgp478U6bomk+M3 vdU1e5js7SBdG1BTNLIwVFyYABkkckgDua9uXC2cxi5SwlVJf9O5/wCR8vDjrhuc lGOYUG3sva0//kj3SiiivCPqgooooAKKKKACiiigAooooAKK81+On7X3w6/Zq1Sw svG3iNNFutTiae2i+xXNy0iKdpY+TG+0Z4+bGcHGcGu88M+I7Pxh4csNW0+R5rDU 7eO6tpHieJnjdQyko4DLkEHDAEdxXVUwOJp0Y4ipTkoT+GTTUXbez2dvI4aWaYOr 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 D4X/AAR8ft4p8M+Fxp+vukiG8fUbu5bEn3ziWV1BPrjPJ55NMuf2F/hXefGD/hPZ /C3n+LPt41P7dLqV2/8ApAYMr+WZfL4IGF27RgYHFetUUPPcydR1XiJ8zXK3zyu4 /wArd728thrhfJlRWHWEpcilzqPs4WU9ue1rc1vtb+Z5N8YP2Gvhb8fPG58R+LvD B1jWDEkHnvqd5EojTO1QkcqoAMn+HnJznNfFv7ePwY+IH7VX7dNhpVp4P8Ww+EdO ktNDg1P+yJ1sYodwaecS7Nm0F3+bOCEFfpXRXscP8Y43K6yrNupyRcYKUm1Dmtdx Wy2tZWVj57i3w9y7PMLPCpKj7WcZVZQjFSqct7Rm7Xervd3aa06niWof8E4/gnqn i2LW5/AGltfxPHJhZp47Z2QDBa3WQQtnA3AoQ5JLA5Oe6+KX7Png/wCM3w6t/CXi HRY7rw3atE0On288tlFH5Q2xqPIZCFUdFztGBxwMdnRXi1c6zCpKE6lebcPhblJu P+HXT5H0lDhvKaEKkKOFpxVVWmlCKU091Ky95Pre5yfwZ+BvhX9nvwb/AMI/4P0l NG0kzvdGBZ5Zi0rgBmLyMzEkKo5PAAFebeKv+CaPwO8Z+IbrVL3wDZrd3r+ZKLS/ u7OHdgDKxQypGvT+FRk5PUmvdaKKOdZhRrTxFGvOM5/FJSkm/Vp3fzDEcN5RiMND B18LTlSh8MHCLjH/AAxasvkjnvht8KPDXwe8LR6L4W0TTtB0yPGYbOEReYwVU3uw +Z5CqqC7EscckmuD+GX7CXwp+DvxEi8WeHfCosvEMBlZLyTUry5ZTIpVztllZckM wzjPJr12is4ZpjYe05K0l7TSdpP3l/e197d733NamRZbUVGNTD02qLvTvCL5HprD T3XotVbZHnvxx/ZT+Hv7SK2p8aeF7HWprIjyLjfJb3KKN3yedEySFMsx2FtuTnGQ DWP8I/2FfhL8DPEP9reGfBWm2epqVaO6uZZr6W3Zc4aJp3cxNyclNpPfNetUVdPO cwhh/qkK81T/AJVKXL/4De34GdbhzKa2LWPq4WnKsvtuEXPTb3mr6eph/Eb4aaB8 XfCN3oPibSbLWtIvV2y21ym5c44ZT1VxnIZSGU8gg15V4O/4JtfBDwLrseo2Pw+0 ya5iUqq39zc6hDyMZMVxI8ZPoSuR1GDXuNFThc3x2Gpyo4atOEZbqMmk/VJ2ZWPy DK8dVjiMbhqdScfhlKEZNa30bTa1106nIfGf4D+FP2g/B6aB4v0ttV0iOdLkWy3c 9sPMUEKSYXQkAMeCce3ArK0P9lDwB4a+Cl78O7DQPsvg/US5ubCO+uQZi7BmzN5n m8lR/H0GOnFeiUVFPMsZTpKhCrJQT5klJpKS2kle1/Pc1q5NgKtd4qpQg6jjyOTj Fy5HvG9r8r/lvbyPOPg9+yT8PfgDomt6d4Q8P/2Na+IkEeoBL65lknUKygB5JGdM B2xtIwTnrzVP4I/sU/DH9nLxVPrfg3wwmj6pc2zWck5v7q5JiZlYqBNI4GSi8gA8 dcV6nRWs85zCftOevN+0tz3lL3raLm196y0V72Oenw3lFNUVTwtNexbdO0Irkbd2 4ae629Xy2u9WFFFFeae0FFFFABRRRQB//9k= ----boundary_1_e1f66bde-4086-4084-ad21-245b55a3d7a0--

----boundary_0_61ec80d2-1bf7-4554-922e-634e8e8a1067 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable

感谢您的订购。 ----boundary_0_61ec80d2-1bf7-4554-922e-634e8e8a1067--

----boundary_2_1e984f0b-dc01-4739-a9c2-8302dc7c9c15 Content-Type: multipart/mixed; boundary=--boundary_3_5116e4dc-187a-4025-8b7f-9e74f87a79d1

----boundary_3_5116e4dc-187a-4025-8b7f-9e74f87a79d1 Content-Type: application/octet-stream; name=order.txt Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=order.txt; creation-date="Fri, 28 Aug 2009 13:03:40 -0700"

订单说明:

Widgets: 20
Projects: 15
Thank you for your order. ----boundary_3_5116e4dc-187a-4025-8b7f-9e74f87a79d1--

----boundary_2_1e984f0b-dc01-4739-a9c2-8302dc7c9c15--


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接