acl
3.5.3.0
|
#include <mime.hpp>
Public 成员函数 | |
mime (void) | |
~mime (void) | |
mime & | reset (void) |
void | primary_head_finish (void) |
bool | primary_head_ok (void) const |
void | update_begin (const char *path) |
bool | update (const char *data, size_t len) |
void | update_end (void) |
bool | parse (const char *file_path) |
bool | save_as (ostream &out) |
bool | save_as (const char *file_path) |
bool | save_mail (const char *path, const char *filename, bool enableDecode=true, const char *toCharset="gb2312", off_t off=0) |
mime_body * | get_body_node (bool htmlFirst, bool enableDecode=true, const char *toCharset="gb2312", off_t off=0) |
mime_body * | get_plain_body (bool enableDecode=true, const char *toCharset="gb2312", off_t off=0) |
mime_body * | get_html_body (bool enableDecode=true, const char *toCharset="gb2312", off_t off=0) |
const std::list< mime_node * > & | get_mime_nodes (bool enableDecode=true, const char *toCharset="gb2312", off_t off=0) |
const std::list< mime_attach * > & | get_attachments (bool enableDecode=true, const char *toCharset="gb2312", off_t off=0, bool all=true) |
const std::list< mime_image * > & | get_images (bool enableDecode=true, const char *toCharset="gb2312", off_t off=0) |
mime_image * | get_image (const char *cld, bool enableDecode=true, const char *toCharset="gb2312", off_t off=0) |
void | mime_debug (const char *save_path, bool decode=true) |
mime & | set_sender (const char *addr) |
mime & | set_from (const char *addr) |
mime & | set_replyto (const char *addr) |
mime & | set_returnpath (const char *addr) |
mime & | set_subject (const char *s) |
mime & | add_to (const char *addr) |
mime & | add_cc (const char *addr) |
mime & | add_bcc (const char *addr) |
mime & | add_rcpt (const char *addr) |
mime & | add_header (const char *name, const char *value) |
mime & | set_type (const char *ctype, const char *stype) |
mime & | set_boundary (const char *s) |
const string & | sender (void) const |
const string & | from (void) const |
const string & | replyto (void) const |
const string & | returnpath (void) const |
const string & | subject (void) const |
const std::list< char * > & | to_list (void) const |
const std::list< char * > & | cc_list (void) const |
const std::list< char * > & | bcc_list (void) const |
const std::list< char * > & | rcpt_list (void) const |
const std::list< HEADER * > & | header_list (void) const |
const char * | header_value (const char *name) const |
int | header_values (const char *name, std::list< const char * > *values) const |
const char * | get_ctype (void) const |
const char * | get_stype (void) const |
const mime_head & | primary_header (void) const |
额外继承的成员函数 | |
Protected 成员函数 继承自 acl::acl::noncopyable | |
noncopyable () | |
~noncopyable () | |
acl::mime::mime | ( | void | ) |
acl::mime::~mime | ( | void | ) |
|
inline |
|
inline |
|
inline |
添加邮件头的字段
name | {const char*} 字段名 |
value | {const char*} 字段值 |
引用了 add_header() , 以及 name.
被这些函数引用 add_header().
|
inline |
添加邮件接收者: CC: zheng shux in@51 iker .com
addr | {const char* addr} 邮件地址 |
引用了 add_rcpt().
被这些函数引用 add_rcpt().
|
inline |
|
inline |
获得暗送人列表: To: xxx@x xx.c om
|
inline |
获得抄送人列表: To: xxx@x xx.c om
|
inline |
获得发件人
const std::list<mime_attach*>& acl::mime::get_attachments | ( | bool | enableDecode = true , |
const char * | toCharset = "gb2312" , |
||
off_t | off = 0 , |
||
bool | all = true |
||
) |
获得附件列表
enableDecode | {bool} 转储时是否自动进行解码 |
toCharset | {const char*} 目标字符集 |
off | {off_t} 调用者希望给邮件结点附加的相对偏移量 |
all | {bool} 提取所有包括 message/application/image 在内的所有节点 |
mime_body* acl::mime::get_body_node | ( | bool | htmlFirst, |
bool | enableDecode = true , |
||
const char * | toCharset = "gb2312" , |
||
off_t | off = 0 |
||
) |
获得邮件正文节点
htmlFirst | {bool} 优先获得HTML格式的文本;否则优先获得 纯文本,且如果只有HTML文本则转换为纯文本 |
enableDecode | {bool} 转储时是否对原文进行解码 |
toCharset | {const char*} 目标字符集 |
off | {off_t} 调用者希望给邮件体结点附加的相对偏移量 |
|
inline |
获得邮件头中关于 Content-Type: text/html 中的 text 字段
mime_body* acl::mime::get_html_body | ( | bool | enableDecode = true , |
const char * | toCharset = "gb2312" , |
||
off_t | off = 0 |
||
) |
获得 text/html 格式的正文节点
enableDecode | {bool} 转储时是否对原文进行解码 |
toCharset | {const char*} 目标字符集 |
off | {off_t} 调用者希望给邮件体结点附加的相对偏移量 |
mime_image* acl::mime::get_image | ( | const char * | cld, |
bool | enableDecode = true , |
||
const char * | toCharset = "gb2312" , |
||
off_t | off = 0 |
||
) |
const std::list<mime_image*>& acl::mime::get_images | ( | bool | enableDecode = true , |
const char * | toCharset = "gb2312" , |
||
off_t | off = 0 |
||
) |
获得图片列表
enableDecode | {bool} 转储时是否自动进行解码 |
toCharset | {const char*} 目标字符集 |
off | {off_t} 调用者希望给邮件结点附加的相对偏移量 |
const std::list<mime_node*>& acl::mime::get_mime_nodes | ( | bool | enableDecode = true , |
const char * | toCharset = "gb2312" , |
||
off_t | off = 0 |
||
) |
获得所有的 mime 节点列表
enableDecode | {bool} 转储时是否自动进行解码 |
toCharset | {const char*} 目标字符集 |
off | {off_t} 调用者希望给邮件结点附加的相对偏移量 |
mime_body* acl::mime::get_plain_body | ( | bool | enableDecode = true , |
const char * | toCharset = "gb2312" , |
||
off_t | off = 0 |
||
) |
获得 text/plain 格式的正文节点
enableDecode | {bool} 转储时是否对原文进行解码 |
toCharset | {const char*} 目标字符集 |
off | {off_t} 调用者希望给邮件体结点附加的相对偏移量 |
|
inline |
获得邮件头中关于 Content-Type: text/html 中的 html 字段
|
inline |
获得邮件头的各个字段列表
|
inline |
查询邮件头对应字段名的字段值
name | {const char*} 字段名 |
引用了 name.
|
inline |
查询邮件头对应字段名的字段值集合
name | {const char*} 字段名 |
values | {std::list<const char*>*} 存储对应的结果集 |
引用了 name.
void acl::mime::mime_debug | ( | const char * | save_path, |
bool | decode = true |
||
) |
调试MIME解析结果
save_path | {const char*} 存储 MIME 解析结果的路径 |
decode | {bool} 是否对原文进行解码 |
bool acl::mime::parse | ( | const char * | file_path | ) |
调用此函数解析磁盘上的一封邮件
file_path | {const char*} 邮件文件路径 |
void acl::mime::primary_head_finish | ( | void | ) |
调用者可以手工调用此函数以触发分析邮件头过程
bool acl::mime::primary_head_ok | ( | void | ) | const |
调用流式分析时用此函数判断邮件头是否解析完毕
|
inline |
|
inline |
|
inline |
获得回复邮件地址
mime& acl::mime::reset | ( | void | ) |
当用同一个MIME解析器对多封邮件解析时, 需要调用此函数清理之前 解析过程中产生的内存, 虽然多次调用该函数无害, 但为了不影响 效率, 最好在利用该解析器解析下一封邮件前调用该函数
|
inline |
获得回复邮件地址
bool acl::mime::save_as | ( | ostream & | out | ) |
将邮件解析结果另存为另一个文件名
out | {ostream&} 目标流对象 |
bool acl::mime::save_as | ( | const char * | file_path | ) |
将邮件解析结果另存为另一个文件中
file_path | {const char*} 目标文件名 |
bool acl::mime::save_mail | ( | const char * | path, |
const char * | filename, | ||
bool | enableDecode = true , |
||
const char * | toCharset = "gb2312" , |
||
off_t | off = 0 |
||
) |
邮件解析完毕后,按客户显示的方式将解析结果保存于磁盘, 用户可以使用浏览器打开该 html 页面
path | {const char*} 页面保存路径 |
filename | {const char*} 目标文件名 |
enableDecode | {bool} 转储时是否自动进行解码 |
toCharset | {const char*} 目标字符集 |
off | {off_t} 调用者希望给邮件结点附加的相对偏移量 |
|
inline |
|
inline |
设置邮件头部的分隔符
s | {const char*} 分隔串 |
引用了 set_boundary().
被这些函数引用 set_boundary().
|
inline |
设置发件人: From: zheng shux in@51 iker .com
addr | {const char*} 邮件地址 |
引用了 set_from().
被这些函数引用 set_from().
|
inline |
设置邮件回地址: Reply-To: zheng shux in@51 iker .com
addr | {const char*} 邮件地址 |
引用了 set_replyto().
被这些函数引用 set_replyto().
|
inline |
设置邮件反复地址 Return-Path: zheng shux in@51 iker .com
addr | {const char*} 邮件地址 |
引用了 set_returnpath().
被这些函数引用 set_returnpath() , 以及 set_sender().
|
inline |
设置发件人
addr | {const char*} 邮件地址 |
引用了 set_returnpath().
|
inline |
设置邮件主题: Subject: test
s | {const char*} 邮件主题 |
引用了 set_subject().
被这些函数引用 set_subject().
|
inline |
设置邮件头的内容类型: Content-Type: text/plain
ctype | {const char*} 主类型 |
stype | {const char*} 子类型 |
引用了 set_type().
被这些函数引用 set_type().
|
inline |
获得邮件主题
|
inline |
获得收件人列表: To: xxx@x xx.c om
bool acl::mime::update | ( | const char * | data, |
size_t | len | ||
) |
调用此函数进行流式方式解析邮件内容, 如果仅想解析邮件头, 则可以用此 接口解析完邮件头后调用 update_end() 接口即可, 如果想要解析完整的一 封邮件, 则需要不断地调用此函数直到本函数返回 true 表示 multipart 格式 的邮件解析完毕; 如果不是 multipart 格式邮件, 则此函数不可能会回返 true, 调用者需要自行判断邮件的结束位置
data | {const char*} 邮件数据(可能是邮件头也可能是邮件体, 并且 不必是完整的数据行) |
len | {size_t} data 数据长度 |
void acl::mime::update_begin | ( | const char * | path | ) |
开始进行流式解析过程, 该函数内部会自动调用 reset() 函数以重置解析 器状态
path | {const char*} 邮件文件路径名, 如果该参数为空, 则不能 获得邮件体数据, 也不能调用 save_xxx 相关的接口 |
void acl::mime::update_end | ( | void | ) |
在采用流式解析结束后必须调用此函数