From 9daf8f7f7e6210b57825459b70a585d5f3cd2749 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 5 Nov 2017 13:54:34 +0530 Subject: [PATCH] Fix sending email failing of the computer's FQDN is set to a single period. Fixes #1730166 [Failing to send book by email](https://bugs.launchpad.net/calibre/+bug/1730166) --- src/calibre/utils/smtp.py | 2 +- src/calibre/utils/smtplib.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/calibre/utils/smtp.py b/src/calibre/utils/smtp.py index 7138b85c6e..3875fd1b83 100644 --- a/src/calibre/utils/smtp.py +++ b/src/calibre/utils/smtp.py @@ -18,7 +18,7 @@ def safe_localhost(): # if that can't be calculated, that we should use a domain literal # instead (essentially an encoded IP address like [A.B.C.D]). fqdn = socket.getfqdn() - if '.' in fqdn: + if '.' in fqdn and fqdn != '.': # Some mail servers have problems with non-ascii local hostnames, see # https://bugs.launchpad.net/bugs/1256549 try: diff --git a/src/calibre/utils/smtplib.py b/src/calibre/utils/smtplib.py index 83a0a7280c..820af3babf 100755 --- a/src/calibre/utils/smtplib.py +++ b/src/calibre/utils/smtplib.py @@ -279,7 +279,7 @@ class SMTP: # if that can't be calculated, that we should use a domain literal # instead (essentially an encoded IP address like [A.B.C.D]). fqdn = socket.getfqdn() - if '.' in fqdn: + if '.' in fqdn and fqdn != '.': self.local_hostname = fqdn else: # We can't find an fqdn hostname, so use a domain literal @@ -800,6 +800,7 @@ class SMTP: self.close() return res + if _have_ssl: class SMTP_SSL(SMTP):