diff options
-rw-r--r-- | mail/e-mail-session-utils.c | 6 | ||||
-rw-r--r-- | mail/e-mail-session.c | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/mail/e-mail-session-utils.c b/mail/e-mail-session-utils.c index 0df301f67f..f91bc73455 100644 --- a/mail/e-mail-session-utils.c +++ b/mail/e-mail-session-utils.c @@ -650,8 +650,12 @@ e_mail_session_send_to (EMailSession *session, } if (account != NULL) { - if (account->transport != NULL) + if (account->transport != NULL) { transport_uri = g_strdup (account->transport->url); + + /* to reprompt password on sending if needed */ + account->transport->get_password_canceled = FALSE; + } sent_folder_uri = g_strdup (account->sent_folder_uri); } diff --git a/mail/e-mail-session.c b/mail/e-mail-session.c index debaf28cea..68d553e97d 100644 --- a/mail/e-mail-session.c +++ b/mail/e-mail-session.c @@ -626,6 +626,9 @@ mail_session_get_password (CamelSession *session, if (ret == NULL || (flags & CAMEL_SESSION_PASSWORD_REPROMPT)) { gboolean remember; + g_free (ret); + ret = NULL; + if (url) { if ((account = e_get_account_by_source_url (url))) config_service = account->source; @@ -674,6 +677,9 @@ mail_session_get_password (CamelSession *session, ret = e_passwords_ask_password (title, domain, key, prompt, eflags, &remember, NULL); + if (!ret) + e_passwords_forget_password (domain, key); + g_free (title); if (ret && config_service) |