Mercurial > kallithea
changeset 2495:9766f0baf5c5 beta
Use local_hostname in mailer
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 20 Jun 2012 21:12:56 +0200 |
parents | c4d418b440d1 |
children | fddd8e3fc157 |
files | rhodecode/lib/rcmail/smtp_mailer.py rhodecode/lib/rcmail/utils.py |
diffstat | 2 files changed, 25 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/lib/rcmail/smtp_mailer.py Wed Jun 20 21:10:40 2012 +0200 +++ b/rhodecode/lib/rcmail/smtp_mailer.py Wed Jun 20 21:12:56 2012 +0200 @@ -27,6 +27,7 @@ from socket import sslerror from email.utils import formatdate from rhodecode.lib.rcmail.message import Message +from rhodecode.lib.rcmail.utils import DNS_NAME class SmtpMailer(object): @@ -68,9 +69,11 @@ raw_msg = msg.to_message() if self.ssl: - smtp_serv = smtplib.SMTP_SSL(self.mail_server, self.mail_port) + smtp_serv = smtplib.SMTP_SSL(self.mail_server, self.mail_port, + local_hostname=DNS_NAME.get_fqdn()) else: - smtp_serv = smtplib.SMTP(self.mail_server, self.mail_port) + smtp_serv = smtplib.SMTP(self.mail_server, self.mail_port, + local_hostname=DNS_NAME.get_fqdn()) if self.tls: smtp_serv.ehlo() @@ -95,4 +98,4 @@ smtp_serv.quit() except sslerror: # sslerror is raised in tls connections on closing sometimes - pass + smtp_serv.close()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/lib/rcmail/utils.py Wed Jun 20 21:12:56 2012 +0200 @@ -0,0 +1,19 @@ +""" +Email message and email sending related helper functions. +""" + +import socket + + +# Cache the hostname, but do it lazily: socket.getfqdn() can take a couple of +# seconds, which slows down the restart of the server. +class CachedDnsName(object): + def __str__(self): + return self.get_fqdn() + + def get_fqdn(self): + if not hasattr(self, '_fqdn'): + self._fqdn = socket.getfqdn() + return self._fqdn + +DNS_NAME = CachedDnsName() \ No newline at end of file