diff options
Diffstat (limited to 'portato/gui')
-rw-r--r-- | portato/gui/dialogs.py | 7 | ||||
-rw-r--r-- | portato/gui/windows/mailinfo.py | 30 |
2 files changed, 24 insertions, 13 deletions
diff --git a/portato/gui/dialogs.py b/portato/gui/dialogs.py index 8f0c78c..7f8a736 100644 --- a/portato/gui/dialogs.py +++ b/portato/gui/dialogs.py @@ -13,6 +13,13 @@ import gtk from ..helper import error +def mail_failure_dialog(e): + dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, _("Mail could not be sent")) + dialog.format_secondary_text(_("The error was: %s") % e) + ret = dialog.run() + dialog.destroy() + return ret + def queue_not_empty_dialog(): dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_NONE, _("There are some packages in the emerge queue and/or an emerge process is running.\nDo you really want to quit?")) #dialog.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_YES, gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE) diff --git a/portato/gui/windows/mailinfo.py b/portato/gui/windows/mailinfo.py index 8e476c6..1b5735a 100644 --- a/portato/gui/windows/mailinfo.py +++ b/portato/gui/windows/mailinfo.py @@ -12,11 +12,12 @@ from __future__ import absolute_import -import smtplib +import smtplib, socket import time from .basic import AbstractDialog from ..utils import GtkThread +from ..dialogs import mail_failure_dialog from ...helper import debug, info from ...constants import VERSION @@ -59,20 +60,23 @@ Subject: %s self.message = message def send (self): - debug("Connecting to server") - server = smtplib.SMTP("mail.necoro.eu") - debug("Sending mail") try: + debug("Connecting to server") + server = smtplib.SMTP("mail.necoro.eu") + debug("Sending mail") try: - server.sendmail(self.addr, self.TO, self.message) - except smtplib.SMTPRecipientsRefused, e: - info(_("An error occurred while sending. I think we where greylisted. The error: %s") % e) - info(_("Wait 60 seconds and try again.")) - time.sleep(60) - server.sendmail(self.addr, self.TO, self.message) - debug("Sent") - finally: - server.quit() + try: + server.sendmail(self.addr, self.TO, self.message) + except smtplib.SMTPRecipientsRefused, e: + info(_("An error occurred while sending. I think we where greylisted. The error: %s") % e) + info(_("Wait 60 seconds and try again.")) + time.sleep(60) + server.sendmail(self.addr, self.TO, self.message) + debug("Sent") + finally: + server.quit() + except socket.error, e: + mail_failure_dialog("%s (Code: %s)" % (e.args[1], e.args[0])) def cb_cancel_clicked (self, *args): |