邮件解析框架(JavaMail的C++实现)使用示例

 

1 概述

邮件解析库API完全使用面向对象技术设计,使用C++语言开发的用于邮件解析和组装的库。它提供了一些类用来解析和组装Internet邮件,如 MimeMessage和MimeBodyPart,用于Internet邮件协议实现并且遵循RFC822和RFC2045规范。这些API库用于应用程序的开发。
1.1 术语
RFC:Request For Comments, 请求注解, Internet标准(草案)
MIME:Multipurpose Internet Mail Extension protocol, 多用途的网际邮件扩充协议
2 Hello World !
以下是一个邮件解析库的简单程序,说明使用面向对象设计的API解析邮件的方法:
代码:
void main()
{
char *emaildata = loademailfile("helloworld.eml");
MimeMessage email(emaildata);
String subject, from, bodytext;
InternetAddress addr;
email.getSubject(subject);
email.getFrom(addr); addr.toString(From);
email.getTextPlain(bodytext);
printf("Subject: %s\nFrom: %s\nBody: %s\n",
subject.c_str(), from.c_str(), bodytext.c_str());
free(emaildata);
}
3 邮件解析库的类
邮件解析库包含一系列的类,主要有MimeMessage(邮件实现类)、MimeBodyPart(邮件正文段体类)、 MimeMultipart(邮件多部段体类)、InternetHeaders(邮件头类)、InternetAddress(邮件地址类)和 ContentType(段体类型类)等。解析和组装邮件主要使用这些类进行组装和分解。
现在介绍一下最主要的也是提供主要的调用接口API的类MimeMessage。
MimeMessage提供了一系列的方法供调用者使用,如定义了获取地址信息和获取邮件正文内容的结构(可以为具体的数据也可以为一个MimeMultipart对象),用来实现RFC822和MIME规范。
一个MimeMessage对象里保存了一个邮件内容数据(Content),以及一些记录特定的邮件地址信息(如发件人(Sender)和收件人(recipients))的属性(InternetHeaders)。还有关于这封邮件的结构信息(structural information),以及它的邮件主体(body)的段体类型(Content-Type)。
下面用图来描述一个MimeMessage对象内部可能的结构:
4 示例
4.1 解析邮件
下面的例子详细说明如何用邮件解析库API解析一封邮件:
代码:
/**
* 邮件源文数据通过参数传递
* @param msg 指向邮件源文的字符串指针
* @param len 邮件源文的长度
*/
void parseMessage(const char *msg, const int len)
{
// 定义一个MimeMessage邮件对象用于解析
// 邮件对象使用指向邮件源文的字符串指针和长度的参数构造
// 也可使用 MimeMessage email(msg)构造,传入len参数的目的是为了节省再做一次
// strlen()的时间,因为有些邮件源文比较大。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值