aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/e-mail-session-utils.c6
-rw-r--r--mail/e-mail-session.c6
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)