From c2189495568777900d3eac00c1d6fc6fb9384075 Mon Sep 17 00:00:00 2001 From: Astraeux Date: Mon, 21 Mar 2016 21:55:03 +0800 Subject: [PATCH] =?UTF-8?q?SMTP=E5=8F=91=E9=82=AE=E4=BB=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81SSL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/install.py | 7 +++++-- install/requirements.txt | 1 + jumpserver.conf | 2 +- jumpserver/settings.py | 5 +++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/install/install.py b/install/install.py index c5b763bd6..5d354761b 100755 --- a/install/install.py +++ b/install/install.py @@ -4,7 +4,7 @@ import time import os import sys -from smtplib import SMTP, SMTPAuthenticationError, SMTPConnectError, SMTPSenderRefused +from smtplib import SMTP, SMTP_SSL, SMTPAuthenticationError, SMTPConnectError, SMTPSenderRefused import ConfigParser import socket import random @@ -201,7 +201,10 @@ class PreSetup(object): def _test_mail(self): try: - smtp = SMTP(self.mail_host, port=self.mail_port, timeout=2) + if self.mail_port == 465: + smtp = SMTP_SSL(self.mail_host, port=self.mail_port, timeout=2) + else: + smtp = SMTP(self.mail_host, port=self.mail_port, timeout=2) smtp.login(self.mail_addr, self.mail_pass) smtp.sendmail(self.mail_addr, (self.mail_addr, ), '''From:%s\r\nTo:%s\r\nSubject:Jumpserver Mail Test!\r\n\r\n Mail test passed!\r\n''' % diff --git a/install/requirements.txt b/install/requirements.txt index 5035a6995..a8c87cee9 100644 --- a/install/requirements.txt +++ b/install/requirements.txt @@ -15,3 +15,4 @@ pyinotify==0.9.6 passlib==1.6.5 argparse==1.4.0 django_crontab==0.6.0 +django-smtp-ssl==1.0 \ No newline at end of file diff --git a/jumpserver.conf b/jumpserver.conf index 9f16edfc9..05919d351 100644 --- a/jumpserver.conf +++ b/jumpserver.conf @@ -19,4 +19,4 @@ email_port = 587 email_host_user = email_host_password = email_use_tls = True - +email_use_ssl = False diff --git a/jumpserver/settings.py b/jumpserver/settings.py index 54d2e835d..d01dcc96a 100644 --- a/jumpserver/settings.py +++ b/jumpserver/settings.py @@ -33,6 +33,11 @@ EMAIL_PORT = config.get('mail', 'email_port') EMAIL_HOST_USER = config.get('mail', 'email_host_user') EMAIL_HOST_PASSWORD = config.get('mail', 'email_host_password') EMAIL_USE_TLS = config.getboolean('mail', 'email_use_tls') +try: + EMAIL_USE_SSL = config.getboolean('mail', 'email_use_ssl') +except ConfigParser.NoOptionError: + EMAIL_USE_SSL = False +EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend' if EMAIL_USE_SSL else 'django.core.mail.backends.smtp.EmailBackend' EMAIL_TIMEOUT = 5 # ======== Log ==========