2015-01-05 21 views
1

我有多部分/混合体的邮件包含嵌套的多部分/相关部分与Html部分和相关的图像部分。有没有办法将这些电子邮件构建为System.Net.Mail的MailMessage实例?如何使用system.net.mail发送非替代性的多个部分

这不是一个备用查询问题。

  1. multipart/mixed 1.1。多部分/相关 1.1.1。 text/html 1.1.2。图片/ gif 1.2。多部分/相关 1.2.1。 text/html 1.2.2。 image/gif

1.1.1与1.1.2相关。但它与1.2.2无关。 1.1.1和1.2.1是独立的html实体。

我在下面粘贴了一条示例消息。

Message-ID: <[email protected]> 
Date: Wed, 04 Apr 2000 04:18:00 +0200 
From: MHTML <[email protected]> 
MIME-Version: 1.0 
To: [email protected] 
Subject: Test message no. 11 
Content-Type: multipart/mixed; boundary="==boundary-2" 

--==boundary-2 
Content-Type: multipart/related; boundary="==boundary-1"; type="text/html" 
Content-Location: http://www.dsv.su.se/jpalme/mimetest/ 

Text displayed only to non-MIME-compliant mailers 
--==boundary-1 
Content-Type: text/html; charset=us-ascii 
Content-Transfer-Encoding: 7bit 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
<HTML> 
<HEAD><TITLE>Test message no. 11 first part</TITLE> 
</HEAD> 
<BODY> 
<H1>This is test message no. 11 first HTML part</H1> 

<H2>Here comes the red test image:</H2> 
<IMG SRC="http://www.dsv.su.se/jpalme/mimetest/red-test-image.gif" 
BORDER=0 HEIGHT=32 WIDTH=117 ALT="red test image"> 

<P>This is the last line of this test message. 
</BODY></HTML> 

--==boundary-1 
Content-Type: image/gif 
Content-ID: <[email protected]> 
Content-Location: http://www.dsv.su.se/jpalme/mimetest/red-test-image.gif 
Content-Transfer-Encoding: base64 
Content-Disposition: inline; filename="red-test-image.gif" 

R0lGODlhdQAgAPcAAP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+Z 
zP+Zmf+ZZv+ZM/+ZAP9m//9mzP9mmf9mZv9mM/9mAP8z//8zzP8zmf8zZv8zM/8zAP8A//8A 
zP8Amf8AZv8AM/8AAMz//8z/zMz/mcz/Zsz/M8z/AMzM/8zMzMzMmczMZszMM8zMAMyZ/8yZ 
zMyZmcyZZsyZM8yZAMxm/8xmzMxmmcxmZsxmM8xmAMwz/8wzzMwzmcwzZswzM8wzAMwA/8wA 
zMwAmcwAZswAM8wAAJn//5n/zJn/mZn/Zpn/M5n/AJnM/5nMzJnMmZnMZpnMM5nMAJmZ/5mZ 
zJmZmZmZZpmZM5mZAJlm/5lmzJlmmZlmZplmM5lmAJkz/5kzzJkzmZkzZpkzM5kzAJkA/5kA 
zJkAmZkAZpkAM5kAAGb//2b/zGb/mWb/Zmb/M2b/AGbM/2bMzGbMmWbMZmbMM2bMAGaZ/2aZ 
zGaZmWaZZmaZM2aZAGZm/2ZmzGZmmWZmZmZmM2ZmAGYz/2YzzGYzmWYzZmYzM2YzAGYA/2YA 
zGYAmWYAZmYAM2YAADP//zP/zDP/mTP/ZjP/MzP/ADPM/zPMzDPMmTPMZjPMMzPMADOZ/zOZ 
zDOZmTOZZjOZMzOZADNm/zNmzDNmmTNmZjNmMzNmADMz/zMzzDMzmTMzZjMzMzMzADMA/zMA 
zDMAmTMAZjMAMzMAAAD//wD/zAD/mQD/ZgD/MwD/AADM/wDMzADMmQDMZgDMMwDMAACZ/wCZ 
zACZmQCZZgCZMwCZAABm/wBmzABmmQBmZgBmMwBmAAAz/wAzzAAzmQAzZgAzMwAzAAAA/wAA 
zAAAmQAAZgAAM+4AAN0AALsAAKoAAIgAAHcAAFUAAEQAACIAABEAAADuAADdAAC7AACqAACI 
AAB3AABVAABEAAAiAAARAAAA7gAA3QAAuwAAqgAAiAAAdwAAVQAARAAAIgAAEe7u7t3d3bu7 
u6qqqoiIiHd3d1VVVURERCIiIhEREQAAACH5BAAAAAAALAAAAAB1ACAAQAj/AP8JHEiwoMGD 
CBMqXMiwocOGIyJKnEixosWLGDNq3MixY0aBFKuJrBZypMiIJ0ekrLhSpUmSKEdObMkSpsuY 
OG/qTMnzJUWQHoMKHUq0KEagRpMqXaoUaU6dG2lKlOqRKtOkTq9q3VrV5sd/XMOKZZp1rNmz 
GsuiXct2hNq2cMVmXdkzZ12LLe/ehYrXpsy/MPUGHvw04lzCdhFbzasYMd+aUxsnnrzTq1uw 
cTN3tVrxrebPWDGDHr3UM+nTHE2jXn1RNevXEl3Dfi179urDJrte5BzVcknNhyNHZiyzJnGv 
uWMuppu7uHLkyV1Kxe1ccOGZ0Cn/xshcu8/K2g2LQ8bJGPJj4eh3+/WNHb118PAtBn8aXTrn 
6s7tl2QP9b399fhNN55tbe31FYEITlRbgqAtyCBwAz5I20MUVmjhhRgyFBAAOw== 
--==boundary-1-- 
--==boundary-2 
Content-Type: multipart/related; boundary="==boundary-1"; type="text/html" 
Content-Location: http://www.dsv.su.se/jpalme/mimetest/ 

Text displayed only to non-MIME-compliant mailers 
--==boundary-1 
Content-Type: text/html; charset=us-ascii 
Content-Transfer-Encoding: 7bit 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
<HTML> 
<HEAD><TITLE>Test message no. 11 second part</TITLE> 
</HEAD> 
<BODY> 
<H1>This is test message no. 11 second HTML part</H1> 

<H2>Here comes the yellow test image:</H2> 
<IMG SRC="cid:[email protected]" BORDER=0 HEIGHT=32 WIDTH=152 
ALT="yellow test image"> 

<P>This is the last line of this test message. 
</BODY></HTML> 

--==boundary-1 
Content-Type: image/gif 
Content-ID: <[email protected]> 
Content-Transfer-Encoding: base64 
Content-Disposition: inline; filename="yellow-test-image.gif" 

R0lGODlhmAAgAPcAAP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+Z 
zP+Zmf+ZZv+ZM/+ZAP9m//9mzP9mmf9mZv9mM/9mAP8z//8zzP8zmf8zZv8zM/8zAP8A//8A 
zP8Amf8AZv8AM/8AAMz//8z/zMz/mcz/Zsz/M8z/AMzM/8zMzMzMmczMZszMM8zMAMyZ/8yZ 
zMyZmcyZZsyZM8yZAMxm/8xmzMxmmcxmZsxmM8xmAMwz/8wzzMwzmcwzZswzM8wzAMwA/8wA 
zMwAmcwAZswAM8wAAJn//5n/zJn/mZn/Zpn/M5n/AJnM/5nMzJnMmZnMZpnMM5nMAJmZ/5mZ 
zJmZmZmZZpmZM5mZAJlm/5lmzJlmmZlmZplmM5lmAJkz/5kzzJkzmZkzZpkzM5kzAJkA/5kA 
zJkAmZkAZpkAM5kAAGb//2b/zGb/mWb/Zmb/M2b/AGbM/2bMzGbMmWbMZmbMM2bMAGaZ/2aZ 
zGaZmWaZZmaZM2aZAGZm/2ZmzGZmmWZmZmZmM2ZmAGYz/2YzzGYzmWYzZmYzM2YzAGYA/2YA 
zGYAmWYAZmYAM2YAADP//zP/zDP/mTP/ZjP/MzP/ADPM/zPMzDPMmTPMZjPMMzPMADOZ/zOZ 
zDOZmTOZZjOZMzOZADNm/zNmzDNmmTNmZjNmMzNmADMz/zMzzDMzmTMzZjMzMzMzADMA/zMA 
zDMAmTMAZjMAMzMAAAD//wD/zAD/mQD/ZgD/MwD/AADM/wDMzADMmQDMZgDMMwDMAACZ/wCZ 
zACZmQCZZgCZMwCZAABm/wBmzABmmQBmZgBmMwBmAAAz/wAzzAAzmQAzZgAzMwAzAAAA/wAA 
zAAAmQAAZgAAM+4AAN0AALsAAKoAAIgAAHcAAFUAAEQAACIAABEAAADuAADdAAC7AACqAACI 
AAB3AABVAABEAAAiAAARAAAA7gAA3QAAuwAAqgAAiAAAdwAAVQAARAAAIgAAEe7u7t3d3bu7 
u6qqqoiIiHd3d1VVVURERCIiIhEREQAAACH5BAAAAAAALAAAAACYACAAQAj/AP8JHEiwoMGD 
CBMqXMiwocOHECMWmEixosWLGDNq3Mixo8ePIEN+FPixWrWKJlOenGgS5coCLWG+VKlSY0yW 
NCnW1PkS482YQFcGxUlU5s6MJEUqXcq0qdOnGpNCnUq1qlWlUm0K7emz502qX0WGvTo1K9mz 
aNOO7Wg2rdu3cDG2jUu3Ltm5dvPqZYp3r9+/G/u6/LmVp0vDMosO7Xo4sWPCGwmfTPm4cGXF 
XC0KbowZcdHLiNd6Br3YcUbIpC0vLi33H+DXbo+G3Ay7tl7atnPHxa27N1revoNXBS68uFPi 
xpOLRK68OVvXHFlfpIwz81PRHrGb9ku7tOyv4Kmnbu4avvxM8RbF50T//ajs1tnVW96OWnLO 
015VW9def/791fPBFx9nBPbXGH/5RXaegqHp1xloz5XEVXsFogchfueZl55oBpp2n1H2ccSc 
c4BJ59GIJKZYEYoqqshiiyS+CGNzEdVo44045qhjQwEBADs= 
--==boundary-1-- 
--==boundary-2-- 

回答

0

你可以使用一些免费的图书馆,检查MailMessagesExamples.zip: http://www.lumisoft.ee/lswww/download/downloads/Examples/

或Google其他一些库。

Mime非常复杂,从字符串组成有效的消息很难,是一些Unicode字符里面。

+0

我知道lumisoft的库。我看过像MimeKit这样的其他开源软件。由于我的要求,我不得不开发自己的解析器。如果我能解决上述问题,那将是完美的。 –

+0

我看不到MailMessage将允许解析或构建复杂的消息,所以你不能这样做。为什么你需要这么拼命MailMessage?那你为什么不做自己的课?如果您需要SmtpClient类,那么这是一个问题,但如果使用一些免费的可用库,则您可以编写自己的SMTP客户端。 – user2959922

相关问题