.net 如何使用POP3和SmtpClient转发多部分MIME电子邮件?

.net 如何使用POP3和SmtpClient转发多部分MIME电子邮件?,.net,mime,smtpclient,pop3,openpop,.net,Mime,Smtpclient,Pop3,Openpop,我正在准备写一个小工具来轮询POP3帐户,然后转发找到的邮件。我正在使用OpenPop.NET库进行POP3访问,并且很可能使用.NET SmtpClient和MailMessage类转发邮件 OpenPop.NET为我提供了一个消息类,它允许我将整个消息(即标题和所有部分)保存到一个文件中,但当我想要发送消息时,我只需要一个正文。现在消息有了一个集合部分,每个部分都有自己的Body属性,其中Body是一个字节数组。看起来我可以使用AlternateViews集合将这些部分中的每一部分附加到邮件

我正在准备写一个小工具来轮询POP3帐户,然后转发找到的邮件。我正在使用OpenPop.NET库进行POP3访问,并且很可能使用.NET SmtpClient和MailMessage类转发邮件

OpenPop.NET为我提供了一个消息类,它允许我将整个消息(即标题和所有部分)保存到一个文件中,但当我想要发送消息时,我只需要一个正文。现在消息有了一个集合部分,每个部分都有自己的Body属性,其中Body是一个字节数组。看起来我可以使用AlternateViews集合将这些部分中的每一部分附加到邮件消息中,但我有点担心字节数组到字符串转换的编码问题


我也愿意接受实现这一点的其他方法的建议,但目前我只知道我正在考虑的过程。

请使用以下代码作为备选视图


你有办法将正文保存为字符串吗?@Shaun07776每个MessagePart都有一个字节数组正文,如果你是这么问的话,我可以将其保存为字符串。你有办法将openpop消息转换为SMTP邮件并转发到其他ID吗?@Biswajeet我忘记了解决问题的细节,但我从openpop切换到了MailKit,一个非常有用且功能强大的库。我认为这有点过于简化了。如果电子邮件有多个部分怎么办?只有那些将电子邮件客户端配置为接收纯文本电子邮件的收件人才会看到邮件的纯文本部分,而反垃圾邮件内容过滤器则会寻找一些文本来平衡HTML邮件中的图像。其他人只会看到你漂亮的HTML电子邮件设计。如果收件人正在哑Unix终端上用PINE阅读你的电子邮件呢?并非所有人都使用Outlook或Thunderbird提供HTML呈现支持。@jstedfast,或一整套依靠阅读纯文本实现自动化的自动电子邮件客户端。
 _MailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8");

            AlternateView plainView = AlternateView.CreateAlternateViewFromString(System.Text.RegularExpressions.Regex.Replace(_Body, "<(.|\\n)*?>", string.Empty), null, "text/plain");
            AlternateView htmlView = AlternateView.CreateAlternateViewFromString(_Body, null, "text/html");

            _MailMessage.AlternateViews.Add(plainView);
            _MailMessage.AlternateViews.Add(htmlView);