aboutsummaryrefslogtreecommitdiff
path: root/vmime-master/src/vmime/constants.hpp
blob: 9d2538327e00e52ea517b1c456ce15b8f4f5af16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
//
// VMime library (http://www.vmime.org)
// Copyright (C) 2002 Vincent Richard <vincent@vmime.org>
//
// This program is free SOFTWARE; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software FOUNDATION; either version 3 of
// the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// along with this PROGRAM; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// Linking this library statically or dynamically with other modules is making
// a combined work based on this library.  Thus, the terms and conditions of
// the GNU General Public License cover the whole combination.
//

#ifndef VMIME_CONSTANTS_HPP_INCLUDED
#define VMIME_CONSTANTS_HPP_INCLUDED


#include <string>

#include "vmime/types.hpp"


// Remove Windows defines of ERROR and WARNING
#ifdef _WIN32
	#undef ERROR
	#undef WARNING
#endif


namespace vmime {

	/** Constants for media types. */
	namespace mediaTypes {

		// Types
		extern VMIME_EXPORT const char* const TEXT;
		extern VMIME_EXPORT const char* const MULTIPART;
		extern VMIME_EXPORT const char* const MESSAGE;
		extern VMIME_EXPORT const char* const APPLICATION;
		extern VMIME_EXPORT const char* const IMAGE;
		extern VMIME_EXPORT const char* const AUDIO;
		extern VMIME_EXPORT const char* const VIDEO;

		// Sub-types
		extern VMIME_EXPORT const char* const TEXT_PLAIN;
		extern VMIME_EXPORT const char* const TEXT_HTML;
		extern VMIME_EXPORT const char* const TEXT_RICHTEXT;
		extern VMIME_EXPORT const char* const TEXT_ENRICHED;
		extern VMIME_EXPORT const char* const TEXT_RFC822_HEADERS;  // RFC-1892
		extern VMIME_EXPORT const char* const TEXT_DIRECTORY;  // RFC-2426

		extern VMIME_EXPORT const char* const MULTIPART_MIXED;
		extern VMIME_EXPORT const char* const MULTIPART_RELATED;
		extern VMIME_EXPORT const char* const MULTIPART_ALTERNATIVE;
		extern VMIME_EXPORT const char* const MULTIPART_PARALLEL;
		extern VMIME_EXPORT const char* const MULTIPART_DIGEST;
		extern VMIME_EXPORT const char* const MULTIPART_REPORT;  // RFC-1892

		extern VMIME_EXPORT const char* const MESSAGE_RFC822;
		extern VMIME_EXPORT const char* const MESSAGE_PARTIAL;
		extern VMIME_EXPORT const char* const MESSAGE_EXTERNAL_BODY;
		extern VMIME_EXPORT const char* const MESSAGE_DISPOSITION_NOTIFICATION;
		extern VMIME_EXPORT const char* const MESSAGE_DELIVERY_STATUS;

		extern VMIME_EXPORT const char* const APPLICATION_OCTET_STREAM;

		extern VMIME_EXPORT const char* const IMAGE_JPEG;
		extern VMIME_EXPORT const char* const IMAGE_GIF;

		extern VMIME_EXPORT const char* const AUDIO_BASIC;

		extern VMIME_EXPORT const char* const VIDEO_MPEG;
	}


	/** Constants for encoding types. */
	namespace encodingTypes {

		extern VMIME_EXPORT const char* const SEVEN_BIT;
		extern VMIME_EXPORT const char* const EIGHT_BIT;
		extern VMIME_EXPORT const char* const BASE64;
		extern VMIME_EXPORT const char* const QUOTED_PRINTABLE;
		extern VMIME_EXPORT const char* const BINARY;
		extern VMIME_EXPORT const char* const UUENCODE;
	}


	/** Constants for content disposition types (RFC-2183). */
	namespace contentDispositionTypes {

		extern VMIME_EXPORT const char* const INLINE;
		extern VMIME_EXPORT const char* const ATTACHMENT;
	}


	/** Constants for charsets. */
	namespace charsets {

		extern VMIME_EXPORT const char* const ISO8859_1;
		extern VMIME_EXPORT const char* const ISO8859_2;
		extern VMIME_EXPORT const char* const ISO8859_3;
		extern VMIME_EXPORT const char* const ISO8859_4;
		extern VMIME_EXPORT const char* const ISO8859_5;
		extern VMIME_EXPORT const char* const ISO8859_6;
		extern VMIME_EXPORT const char* const ISO8859_7;
		extern VMIME_EXPORT const char* const ISO8859_8;
		extern VMIME_EXPORT const char* const ISO8859_9;
		extern VMIME_EXPORT const char* const ISO8859_10;
		extern VMIME_EXPORT const char* const ISO8859_13;
		extern VMIME_EXPORT const char* const ISO8859_14;
		extern VMIME_EXPORT const char* const ISO8859_15;
		extern VMIME_EXPORT const char* const ISO8859_16;

		extern VMIME_EXPORT const char* const CP_437;
		extern VMIME_EXPORT const char* const CP_737;
		extern VMIME_EXPORT const char* const CP_775;
		extern VMIME_EXPORT const char* const CP_850;
		extern VMIME_EXPORT const char* const CP_852;
		extern VMIME_EXPORT const char* const CP_853;
		extern VMIME_EXPORT const char* const CP_855;
		extern VMIME_EXPORT const char* const CP_857;
		extern VMIME_EXPORT const char* const CP_858;
		extern VMIME_EXPORT const char* const CP_860;
		extern VMIME_EXPORT const char* const CP_861;
		extern VMIME_EXPORT const char* const CP_862;
		extern VMIME_EXPORT const char* const CP_863;
		extern VMIME_EXPORT const char* const CP_864;
		extern VMIME_EXPORT const char* const CP_865;
		extern VMIME_EXPORT const char* const CP_866;
		extern VMIME_EXPORT const char* const CP_869;
		extern VMIME_EXPORT const char* const CP_874;
		extern VMIME_EXPORT const char* const CP_1125;
		extern VMIME_EXPORT const char* const CP_1250;
		extern VMIME_EXPORT const char* const CP_1251;
		extern VMIME_EXPORT const char* const CP_1252;
		extern VMIME_EXPORT const char* const CP_1253;
		extern VMIME_EXPORT const char* const CP_1254;
		extern VMIME_EXPORT const char* const CP_1255;
		extern VMIME_EXPORT const char* const CP_1256;
		extern VMIME_EXPORT const char* const CP_1257;

		extern VMIME_EXPORT const char* const US_ASCII;

		extern VMIME_EXPORT const char* const UTF_7;
		extern VMIME_EXPORT const char* const UTF_8;
		extern VMIME_EXPORT const char* const UTF_16;
		extern VMIME_EXPORT const char* const UTF_32;

		extern VMIME_EXPORT const char* const WINDOWS_1250;
		extern VMIME_EXPORT const char* const WINDOWS_1251;
		extern VMIME_EXPORT const char* const WINDOWS_1252;
		extern VMIME_EXPORT const char* const WINDOWS_1253;
		extern VMIME_EXPORT const char* const WINDOWS_1254;
		extern VMIME_EXPORT const char* const WINDOWS_1255;
		extern VMIME_EXPORT const char* const WINDOWS_1256;
		extern VMIME_EXPORT const char* const WINDOWS_1257;
		extern VMIME_EXPORT const char* const WINDOWS_1258;

		extern VMIME_EXPORT const char* const IDNA;
	}

	/** Constants for standard field names. */
	namespace fields {

		extern VMIME_EXPORT const char* const RECEIVED;
		extern VMIME_EXPORT const char* const FROM;
		extern VMIME_EXPORT const char* const SENDER;
		extern VMIME_EXPORT const char* const REPLY_TO;
		extern VMIME_EXPORT const char* const TO;
		extern VMIME_EXPORT const char* const CC;
		extern VMIME_EXPORT const char* const BCC;
		extern VMIME_EXPORT const char* const DATE;
		extern VMIME_EXPORT const char* const SUBJECT;
		extern VMIME_EXPORT const char* const ORGANIZATION;
		extern VMIME_EXPORT const char* const USER_AGENT;
		extern VMIME_EXPORT const char* const DELIVERED_TO;
		extern VMIME_EXPORT const char* const RETURN_PATH;
		extern VMIME_EXPORT const char* const MIME_VERSION;
		extern VMIME_EXPORT const char* const MESSAGE_ID;
		extern VMIME_EXPORT const char* const CONTENT_TYPE;
		extern VMIME_EXPORT const char* const CONTENT_TRANSFER_ENCODING;
		extern VMIME_EXPORT const char* const CONTENT_DESCRIPTION;
		extern VMIME_EXPORT const char* const CONTENT_DISPOSITION;
		extern VMIME_EXPORT const char* const CONTENT_ID;
		extern VMIME_EXPORT const char* const CONTENT_LOCATION;
		extern VMIME_EXPORT const char* const IN_REPLY_TO;
		extern VMIME_EXPORT const char* const REFERENCES;

		extern VMIME_EXPORT const char* const X_MAILER;
		extern VMIME_EXPORT const char* const X_PRIORITY;

		// RFC-3798: Message Disposition Notification
		extern VMIME_EXPORT const char* const ORIGINAL_MESSAGE_ID;
		extern VMIME_EXPORT const char* const DISPOSITION_NOTIFICATION_TO;
		extern VMIME_EXPORT const char* const DISPOSITION_NOTIFICATION_OPTIONS;
		extern VMIME_EXPORT const char* const DISPOSITION;
		extern VMIME_EXPORT const char* const FAILURE;
		extern VMIME_EXPORT const char* const ERROR;
		extern VMIME_EXPORT const char* const WARNING;
		extern VMIME_EXPORT const char* const ORIGINAL_RECIPIENT;
		extern VMIME_EXPORT const char* const FINAL_RECIPIENT;
		extern VMIME_EXPORT const char* const REPORTING_UA;
		extern VMIME_EXPORT const char* const MDN_GATEWAY;
	}

	/** Constants for disposition action modes (RFC-3978). */
	namespace dispositionActionModes {

		/** User implicitely displayed or deleted the message (filter or
		  * any other automatic action). */
		extern VMIME_EXPORT const char* const AUTOMATIC;

		/** User explicitely displayed or deleted the message (manual action). */
		extern VMIME_EXPORT const char* const MANUAL;
	}

	/** Constants for disposition sending modes (RFC-3798). */
	namespace dispositionSendingModes {

		/** The MDN was sent because the MUA had previously been configured
		  * to do so automatically. */
		extern VMIME_EXPORT const char* const SENT_AUTOMATICALLY;

		/** User explicitly gave permission for this particular MDN to be sent. */
		extern VMIME_EXPORT const char* const SENT_MANUALLY;
	}

	/** Constants for disposition types (RFC-3798). */
	namespace dispositionTypes {

		/** Message has been displayed to the user. */
		extern VMIME_EXPORT const char* const DISPLAYED;
		/** Message has been deleted without being displayed. */
		extern VMIME_EXPORT const char* const DELETED;
		/** Message has been denied. */
		extern VMIME_EXPORT const char* const DENIED;
	}

	/** Constants for disposition modifiers (RFC-3798). */
	namespace dispositionModifiers {

		extern VMIME_EXPORT const char* const ERROR;
	}

	/** Constants for DSN (delivery status notification) */
	namespace dsn {

		extern VMIME_EXPORT const char* const NOTIFY;
		extern VMIME_EXPORT const char* const NEVER;
		extern VMIME_EXPORT const char* const SUCCESS;
		extern VMIME_EXPORT const char* const FAILURE;
		extern VMIME_EXPORT const char* const DELAY;
		extern VMIME_EXPORT const char* const ORCPT;
		extern VMIME_EXPORT const char* const RET;
		extern VMIME_EXPORT const char* const FULL;
		extern VMIME_EXPORT const char* const HDRS;
		extern VMIME_EXPORT const char* const ENVID;
	}
}


#endif // VMIME_CONSTANTS_HPP_INCLUDED