acl
3.5.3.0
mime_body.hpp
浏览该文件的文档.
1
#pragma once
2
#include "../acl_cpp_define.hpp"
3
#include "
mime_node.hpp
"
4
5
#if !defined(ACL_MIME_DISABLE)
6
7
struct
MIME_NODE;
8
9
namespace
acl
{
10
11
class
pipe_manager;
12
class
ostream;
13
class
pipe_string;
14
class
string;
15
16
class
ACL_CPP_API
mime_body
:
public
mime_node
17
{
18
public
:
19
/**
20
* 构造函数
21
* @param emailFile {const char*} 存储邮件内容的源文件,可以
22
* 为空,但当为空时在调用 save_body 函数时,则不能指定源文件
23
* @param node {const MIME_NODE*} 邮件中的某个结点对象
24
* @param htmlFirst {bool} 是否在提取内容时优先提取 HTML 数据
25
* @param enableDecode {bool} 当邮件内容为 base64/qp 等编译格式
26
* 时是否需要自动进行解码
27
* @param toCharset {const char*} 缺省的目标字符集,如果目标
28
* 字符集与源字符集不同,则进行字符集转换
29
* @param off {off_t} 邮件内容在整个数据中的起始位置中附加的
30
* 相对偏移量,以便于用户可以在邮件内容前面加自己的私有数据
31
*/
32
mime_body
(
const
char
* emailFile,
const
MIME_NODE* node,
33
bool
htmlFirst =
true
,
bool
enableDecode =
true
,
34
const
char
* toCharset =
"gb2312"
, off_t off = 0)
35
:
mime_node
(emailFile, node, enableDecode, toCharset, off)
36
, m_htmlFirst(htmlFirst)
37
{
38
}
39
40
~mime_body
(
void
) {}
41
42
/**
43
* 设置是否仅提取 HTML 数据, 如果为 true 则优先提取 HTML 数据,
44
* 当不存在 HTML 数据时才会提取纯文本数据; 如果为 false 则优先
45
* 提取纯文本数据, 如果仅有 HTML 数据时则会从该 HTML 数据中抽
46
* 取出纯文本数据
47
* @param htmlFirst {bool}
48
*/
49
void
set_status
(
bool
htmlFirst)
50
{
51
m_htmlFirst = htmlFirst;
52
}
53
54
/**
55
* 转储邮件正文内容于管道流中
56
* @param out {pipe_manager&} 管道流管理器
57
* @param src {const char*} 邮件内容的起始地址,如果为空指针,
58
* 则从构造函数中所提供的 emailFile 的文件中提取邮件内容
59
* @param len {int} 邮件内容的数据长度,如果为0,则从构造
60
* 函数中所提供的 emailFile 的文件中提取邮件内容
61
* @return {bool} 是否成功
62
*/
63
bool
save_body(
pipe_manager
& out,
const
char
* src = NULL,
64
int
len = 0);
65
66
/**
67
* 转储邮件正文内容于输出流中
68
* @param out {ostream&} 输出流
69
* @param src {const char*} 邮件内容的起始地址,如果为空指针,
70
* 则从构造函数中所提供的 emailFile 的文件中提取邮件内容
71
* @param len {int} 邮件内容的数据长度,如果为0,则从构造
72
* 函数中所提供的 emailFile 的文件中提取邮件内容
73
* @return {bool} 是否成功
74
*/
75
bool
save_body(
ostream
& out,
const
char
* src = NULL,
76
int
len = 0);
77
78
/**
79
* 转储邮件正文内容于目标文件中
80
* @param file_path {const char*} 目标文件名
81
* @param src {const char*} 邮件内容的起始地址,如果为空指针,
82
* 则从构造函数中所提供的 emailFile 的文件中提取邮件内容
83
* @param len {int} 邮件内容的数据长度,如果为0,则从构造
84
* 函数中所提供的 emailFile 的文件中提取邮件内容
85
* @return {bool} 是否成功
86
*/
87
bool
save_body(
const
char
* file_path,
const
char
* src = NULL,
88
int
len = 0);
89
90
/**
91
* 转储邮件正文内容于管道缓冲区内
92
* @param out {pipe_string&} 管道缓冲区
93
* @param src {const char*} 邮件内容的起始地址,如果为空指针,
94
* 则从构造函数中所提供的 emailFile 的文件中提取邮件内容
95
* @param len {int} 邮件内容的数据长度,如果为0,则从构造
96
* 函数中所提供的 emailFile 的文件中提取邮件内容
97
* @return {bool} 是否成功
98
*/
99
bool
save_body(
pipe_string
& out,
const
char
* src = NULL,
100
int
len = 0);
101
102
/**
103
* 转储邮件正文内容于缓冲区中
104
* @param out {string&} 缓冲区
105
* @param src {const char*} 邮件内容的起始地址,如果为空指针,
106
* 则从构造函数中所提供的 emailFile 的文件中提取邮件内容
107
* @param len {int} 邮件内容的数据长度,如果为0,则从构造
108
* 函数中所提供的 emailFile 的文件中提取邮件内容
109
* @return {bool} 是否成功
110
*/
111
bool
save_body(
string
& out,
const
char
* src = NULL,
112
int
len = 0);
113
114
/**
115
* 判断结点头部类型中的从类型是否 MIME_STYPE_HTML 类型
116
* @return {bool}
117
*/
118
bool
html_stype(
void
)
const
;
119
120
private
:
121
bool
m_htmlFirst;
122
};
123
124
}
// namespace acl
125
126
#endif // !defined(ACL_MIME_DISABLE)
mime_node.hpp
acl
Definition:
acl_cpp_init.hpp:4
acl::pipe_manager
Definition:
pipe_stream.hpp:97
acl::ostream
Definition:
ostream.hpp:17
acl::mime_node
Definition:
mime_node.hpp:18
acl::mime_body::~mime_body
~mime_body(void)
Definition:
mime_body.hpp:40
acl::mime_body::mime_body
mime_body(const char *emailFile, const MIME_NODE *node, bool htmlFirst=true, bool enableDecode=true, const char *toCharset="gb2312", off_t off=0)
Definition:
mime_body.hpp:32
acl::pipe_string
Definition:
pipe_stream.hpp:49
acl::mime_body::set_status
void set_status(bool htmlFirst)
Definition:
mime_body.hpp:49
ACL_CPP_API
#define ACL_CPP_API
Definition:
acl_cpp_define.hpp:16
acl::mime_body
Definition:
mime_body.hpp:16
include
acl_cpp
mime
mime_body.hpp
生成于 2021年 九月 10日 星期五 11:14:44 , 为 acl使用
1.8.15