blob: 536d3e9bbfde24b4ed43033e183f9f7e1ec4d8df (
plain) (
blame)
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
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* Based on 'test2.c'; tests the camel-formatter class */
#include "gmime-utils.h"
#include "stdio.h"
#include "camel-log.h"
#include "camel-mime-message.h"
#include "camel-mime-part.h"
#include "camel-stream.h"
#include "camel-stream-fs.h"
#include "camel.h"
#include "camel-formatter.h"
static void
convert_to_html_and_print (CamelMimeMessage *msg)
{
CamelFormatter* cmf = camel_formatter_new();
gchar* header_str;
gchar* body_str;
CamelStream* header_stream =
camel_stream_mem_new (CAMEL_STREAM_FS_WRITE);
CamelStream* body_stream =
camel_stream_mem_new (CAMEL_STREAM_FS_WRITE);
camel_formatter_mime_message_to_html (
cmf, msg, header_stream, body_stream);
header_str = g_strndup (
CAMEL_STREAM_MEM (header_stream)->buffer->data,
CAMEL_STREAM_MEM (header_stream)->buffer->len);
body_str = g_strndup (
CAMEL_STREAM_MEM (body_stream)->buffer->data,
CAMEL_STREAM_MEM (body_stream)->buffer->len);
g_print ("Header follows\n----------------------\n%s\n",
header_str);
g_print ("Body follows\n----------------------\n%s\n",
body_str);
g_free (header_str);
g_free (body_str);
}
static void
print_usage_and_quit()
{
g_print ("\nUsage: test-formatter [MIME-MESSAGE-FILE]\n\n");
g_print ("Where MIME-MESSAGE-FILE is in the \"message/rfc822\"\n");
g_print ("mime format.\n\n");
exit(0);
}
int
main (int argc, char**argv)
{
GHashTable *header_table;
CamelMimeMessage *message;
CamelStream *input_stream;
// CamelStream *foo = CAMEL_STREAM(NULL);
gtk_init (&argc, &argv);
if (argc == 1 || argc > 2)
print_usage_and_quit();
camel_init ();
camel_debug_level = CAMEL_LOG_LEVEL_FULL_DEBUG;
message = camel_mime_message_new_with_session( (CamelSession *)NULL);
input_stream = camel_stream_fs_new_with_name (
argv[1], CAMEL_STREAM_FS_READ);
if (!input_stream) {
perror ("could not open input file");
printf ("You must create the file mail.test before running this test");
exit(2);
}
camel_data_wrapper_construct_from_stream (
CAMEL_DATA_WRAPPER (message), input_stream);
camel_debug_level = CAMEL_LOG_LEVEL_FULL_DEBUG;
convert_to_html_and_print (message);
camel_stream_close (input_stream);
gtk_object_unref (GTK_OBJECT (input_stream));
return 0;
}
|