2009年6月3日 星期三

Simplest GMime Example Code



#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gmime-2.0/gmime/gmime.h>
#include <errno.h>

void
error_msg(const char *msg)
{
if (NULL != msg)
printf("%s - (%d)\n", msg, gmime_error_quark);

exit(1);
}

int
main(int argc, char *argv[])
{
FILE *fp = NULL;
const char *subject = NULL;
const char *msg_id = NULL;

GMimeParser     *parser = NULL;
GMimeStream     *gfs = NULL;
GMimeMessage    *message = NULL;
GMimeObject     *part = NULL;

gpointer        user_data;

if (2 != argc ||
NULL == (fp = fopen(argv[1], "r")))
error_msg("invalid argument!!");

g_mime_init(0);

if (NULL == (gfs = g_mime_stream_file_new(fp)))
error_msg("failed to get stream!!");

if (NULL == (parser = g_mime_parser_new_with_stream(gfs)))
error_msg("failed to get parser!!");

if (NULL == (message = g_mime_parser_construct_message(parser)))
error_msg("failed to construct message!!");

subject = g_mime_message_get_subject(message);
msg_id = g_mime_message_get_message_id(message);

printf("Subject: %s\n", subject);
printf("Message-Id: %s\n", msg_id);

g_mime_shutdown();

return 0;
}

1 則留言: