我可以跳过MIME解析来获取附件吗?

时间:2008-12-11 16:58:44

标签: .net vb.net windows-mobile mime

我是新来的,所以首先向你致以问候

我正在编写一个在Windows Mobile(Pocket PC)上运行的应用程序。仅供参考,我使用的是VB.NET。

我的想法是将我的电子邮件帐户与我的提供商一起使用,该提供商给了我很多GB:s作为虚拟在线存储磁盘。简而言之,或许更像是您可能已经阅读过的GMAIL驱动器。我已经编写了代码,使用telnet-socket连接到我的提供商的SMTP,POP3和IMAP帐户。我可以登录,因此到目前为止很好。

在我的具体案例中,我对自己的电子邮件不感兴趣,但实际上是我的文件在这个虚拟的storgae卡上的附件。我发现了许多免费课程,主要是在C#中,用于下载附件的电子邮件,最重要的是MIME解析。不幸的是,所有这些类都以这种或那种方式使用Net Framework的类/命名空间,这些类/命名空间未包含在Windows Mobile使用的.NET Compact Framework中。自己编写MIME解析器对我和我的知识来说太复杂了。

因此,至少关于我通过POP3或IMAP接收的代码,我想我曾经下载过设备上的所有字节,我只需解析完整的电子邮件(验证边界的位置)和获取已在Base64中编码的部分,然后对其进行解码,并使用我在发送时在电子邮件的主题字段中写入的文件的名称和扩展名对其进行重命名。通过这种方式,我或许可以避免关于MIME及其所有含义的所有内容......

什么问候,通过'SMTP发送,我仍然需要调查它。任何想法都将不胜感激。

对不起这段恋情 - 您怎么看?我可以跳过获取MIME解析器并使用普通的字符串解析吗?

亲切的问候, Moster67

3 个答案:

答案 0 :(得分:1)

MIME解析器只是一个字符串解析器。它们非常容易编写,特别是如果您知道您只需要/需要MIME类型的子集。查找RFC并自行实现。

答案 1 :(得分:1)

您可以尝试在邮件标题中查找boundaries,然后在此字符串上拆分电子邮件。解析子部分将是IMHO必需的(编码和字符集会浮现在脑海中;只是删除标题在大多数情况下都不起作用),但比一次处理整个消息要容易一些。

提醒一句:这是一种脆弱的方法 - 它会对某些消息起作用,但会打破其他消息(例如嵌套的多部分消息,更改边界字符串(不应该,但可能发生)等。)

答案 2 :(得分:1)

编写邮件消息IS的字符串解析器实际上是编写一个简单的MIME解析器。您可以在几个小时内编写一个快速且脏的MIME解析器。如果您将其用于解析类似的邮件(例如,通过相同的客户端软件从一个位置发送),那么您应该只需要它。

有关MIME的详细信息,请参阅

几天的工作应该是现实的。我参与了一个简单的内部MIME解析器的开发(花了几天时间来破解和解析95%收到的电子邮件),这些解析器包含在商业产品中(几个月的工作,大量的单元测试和大量真实的测试电子邮件)从野外)然后被修改,因此它可以在Compact Framework中使用(由于内存受限的设备而发生变化,因为只有一小部分.NET框架被移植到.NET CF而发生了变化)。并添加重写CryptoAPI功能的很大一部分,以使签名和加密的S / MIME电子邮件在.NET CF上运行。

MIME解析器是Rebex Secure Mail for .NET / .NET CF组件的一部分,可以从http://www.rebex.net/secure-mail.net/下载

支持所有版本的.NET和.NET CF.即使是.NET CF1 dinosaurus ;-)。但是,它不是免费的。