#include #include "Evolution-DataServer-Mail.h" static GNOME_Evolution_Mail_Session get_session(void) { char *path, *ior; GNOME_Evolution_Mail_Session sess = NULL; CORBA_Environment ev = { 0 }; /* The new-improved bonobo-activation ... */ path = g_build_filename(g_get_home_dir(), ".evolution-mail-remote.ior", NULL); if (g_file_get_contents(path, &ior, NULL, NULL)) { sess = CORBA_ORB_string_to_object(bonobo_orb(), ior, &ev); g_free(ior); } return sess; } int main(int argc, char **argv) { GNOME_Evolution_Mail_Session sess; GNOME_Evolution_Mail_Stores *stores; CORBA_Environment ev = { 0 }; bonobo_init(&argc, argv); sess = get_session(); stores = GNOME_Evolution_Mail_Session_getStores(sess, "", &ev); if (ev._major != CORBA_NO_EXCEPTION) { printf("getStores failed\n"); return 1; } printf("Got %d stores\n", stores->_length); { GNOME_Evolution_Mail_PropertyName namesarray[] = { "name", "uid" }; GNOME_Evolution_Mail_PropertyNames names = { 1, 1, namesarray, FALSE, }; GNOME_Evolution_Mail_Properties *props; int i, j; for (i=0;i_length;i++) { GNOME_Evolution_Mail_Store store = stores->_buffer[i]; printf("store %p\n", store); GNOME_Evolution_Mail_Store_getProperties(store, &names, &props, &ev); if (ev._major != CORBA_NO_EXCEPTION) { printf("getProperties failed\n"); return 1; } for (j=0;j_length;j++) { printf(" %s = (%s)", props->_buffer[j].name, ORBit_tk_to_name(props->_buffer[j].value._type->kind)); if (props->_buffer[j].value._type == TC_CORBA_string) { printf(" '%s'\n", props->_buffer[j].value._value); } else { printf(" '%s' ", BONOBO_ARG_GET_STRING(&props->_buffer[j].value)); printf(" \n"); } } CORBA_free(props); printf("attempt send mail to store\n"); GNOME_Evolution_Mail_Store_sendMessage(store, NULL, "notzed@ximian.com", "notzed@novell.com, user@host", &ev); if (ev._major != CORBA_NO_EXCEPTION) { printf("sendmessage failed\n"); /* FIXME:L leaks ex data? */ CORBA_exception_init(&ev); } } } CORBA_free(stores); }