Merge pull request #140 from Astraeux/smtp_ssl_fix

SMTP发邮件支持SSL
pull/147/head
ibuler 2016-03-22 16:32:51 +08:00
commit 300e106143
4 changed files with 12 additions and 3 deletions

View File

@ -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''' %

View File

@ -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

View File

@ -19,4 +19,4 @@ email_port = 587
email_host_user =
email_host_password =
email_use_tls = True
email_use_ssl = False

View File

@ -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 ==========