From e14f96454fbd1035e9caa76a6b90bb0a33e2d5c3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 20 Jan 2022 09:32:20 +0530 Subject: [PATCH] Also sanitize email address used for testing --- src/calibre/gui2/wizard/send_email.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/calibre/gui2/wizard/send_email.py b/src/calibre/gui2/wizard/send_email.py index 8f41280516..38c92e5782 100644 --- a/src/calibre/gui2/wizard/send_email.py +++ b/src/calibre/gui2/wizard/send_email.py @@ -67,12 +67,17 @@ class TestEmail(QDialog): t.start() def run_test(self): - try: - tb = self.test_func(str(self.to.text())) or _('Email successfully sent') - except Exception: - import traceback - tb = traceback.format_exc() - self.test_done.emit(tb) + from email.utils import parseaddr + addr = parseaddr(self.to.text().strip())[-1] + if not addr: + tb = f'{self.to.text().strip()} is not a valid email address' + else: + try: + tb = self.test_func(addr) or _('Email successfully sent') + except Exception: + import traceback + tb = traceback.format_exc() + self.test_done.emit(tb) def on_test_done(self, txt): if self.isVisible():