diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-04-13 22:30:40 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2012-06-03 11:00:40 +0800 |
commit | 3449e5fcc7f9c797fcde7f2a444b1eb7a934cd81 (patch) | |
tree | ff59febf4ac0c6316ef344ea25cee002088bd314 /libemail-engine/e-mail-session-utils.c | |
parent | f78795f4dff8b225d78385c5e23e1cd44ee946ad (diff) | |
download | gsoc2013-evolution-3449e5fcc7f9c797fcde7f2a444b1eb7a934cd81.tar.gz gsoc2013-evolution-3449e5fcc7f9c797fcde7f2a444b1eb7a934cd81.tar.zst gsoc2013-evolution-3449e5fcc7f9c797fcde7f2a444b1eb7a934cd81.zip |
Adapt mail to the new ESource API.
Diffstat (limited to 'libemail-engine/e-mail-session-utils.c')
-rw-r--r-- | libemail-engine/e-mail-session-utils.c | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/libemail-engine/e-mail-session-utils.c b/libemail-engine/e-mail-session-utils.c index de1dec1713..26d4639867 100644 --- a/libemail-engine/e-mail-session-utils.c +++ b/libemail-engine/e-mail-session-utils.c @@ -23,11 +23,11 @@ #include "e-mail-session-utils.h" #include <glib/gi18n-lib.h> +#include <libedataserver/e-source-mail-submission.h> #include <libemail-engine/e-mail-folder-utils.h> #include <libemail-engine/e-mail-utils.h> #include <libemail-engine/mail-tools.h> -#include <libemail-utils/e-account-utils.h> /* X-Mailer header value */ #define X_MAILER ("Evolution " VERSION SUB_VERSION " " VERSION_COMMENT) @@ -671,7 +671,8 @@ e_mail_session_send_to (EMailSession *session, CamelAddress *recipients; CamelMedium *medium; CamelMessageInfo *info; - EAccount *account = NULL; + ESourceRegistry *registry; + ESource *source = NULL; GPtrArray *post_to_uris; struct _camel_header_raw *xev; struct _camel_header_raw *header; @@ -684,6 +685,8 @@ e_mail_session_send_to (EMailSession *session, g_return_if_fail (E_IS_MAIL_SESSION (session)); g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message)); + registry = e_mail_session_get_registry (session); + medium = CAMEL_MEDIUM (message); camel_medium_set_header (medium, "X-Mailer", X_MAILER); @@ -692,28 +695,27 @@ e_mail_session_send_to (EMailSession *session, /* Extract directives from X-Evolution headers. */ - string = camel_header_raw_find (&xev, "X-Evolution-Account", NULL); + string = camel_header_raw_find (&xev, "X-Evolution-Identity", NULL); if (string != NULL) { - gchar *account_uid; - - account_uid = g_strstrip (g_strdup (string)); - account = e_get_account_by_uid (account_uid); - g_free (account_uid); + gchar *uid = g_strstrip (g_strdup (string)); + source = e_source_registry_ref_source (registry, uid); + g_free (uid); } - if (account != NULL) { - if (account->transport != NULL) { + if (E_IS_SOURCE (source)) { + ESourceMailSubmission *extension; + const gchar *extension_name; - /* XXX Transport UIDs are kludgy right now. We - * use the EAccount's regular UID and tack on - * "-transport". Will be better soon. */ - transport_uid = g_strconcat ( - account->uid, "-transport", NULL); + extension_name = E_SOURCE_EXTENSION_MAIL_SUBMISSION; + extension = e_source_get_extension (source, extension_name); - /* to reprompt password on sending if needed */ - account->transport->get_password_canceled = FALSE; - } - sent_folder_uri = g_strdup (account->sent_folder_uri); + string = e_source_mail_submission_get_sent_folder (extension); + sent_folder_uri = g_strdup (string); + + string = e_source_mail_submission_get_transport_uid (extension); + transport_uid = g_strdup (string); + + g_object_unref (source); } string = camel_header_raw_find (&xev, "X-Evolution-Fcc", NULL); |