Мы запускаем ночной скрипт для отправки электронных писем кучам людей в нашей компании. Несколько дней назад соединение было открыто в течение длительного периода времени и в конечном итоге было отключено, и с тех пор мы не смогли использовать тот же код на одном компьютере для подключения к серверу обмена SMTP. Django настроен на использование одних и тех же точных настроек, работает на одном сервере и продолжает отправлять сообщения об ошибках. Кроме того, запустив тот же код на другом сервере, мы все еще можем подключать и отправлять электронные письма. Я совершенно недоумеваю относительно причин и потенциальных решений.Python SMTPLib больше не может аутентифицироваться, но django все равно может отправлять электронные письма на одном компьютере
Tl; др:
- Python SMTPlib работал отлично на этом сервере до истечения времени ожидания несколько дней назад
- Джанго могут отправлять сообщения электронной почты с того же сервера с той же информацией аутентификации
- The тот же самый код с той же информацией входа все еще проверяет подлинность при запуске на другом сервере
разъем E-mail:
class Email_Connect(object):
def __init__(self):
self.user = "mydomain\myuser"
self.pwd = "mypassword"
self.send_from = '[email protected]'
self.local_hostname = socket.getfqdn()
def smtp_conn(self,server='myrelay.mycompany.net'):
self.c = smtplib.SMTP(server, local_hostname=self.local_hostname)
self.c.set_debuglevel(1)
self.c.ehlo()
self.c.starttls()
self.c.ehlo()
self.c.login(self.user, self.pwd)
Код называется так:
emailer = common.Email_Connect()
emailer.smtp_conn()
emailer.send_email(send_to,msg_subject,msg_body,None,attachment)
emailer.close()
Джанго Настройки почты (рабочие штрафа на той же машине):
DEFAULT_FROM_EMAIL = '[email protected]'
SERVER_EMAIL = '[email protected]'
EMAIL_USE_TLS = True
EMAIL_HOST = "myrelay.mycompany.net"
EMAIL_HOST_USER = "myuser"
EMAIL_HOST_PASSWORD = "mypassword"
А вот это полный отладочный вывод о выполнении кода:
(production) c:\site\production\web\core>python program_replication.py
(21, 'send spool email reports')
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
send: 'ehlo mycomputer.mycompany.net\r\n'
reply: '250-smtp.mycompany.net Hello [10.1.*.*]\r\n'
reply: '250-SIZE 31457280\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-DSN\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250-STARTTLS\r\n'
reply: '250-AUTH\r\n'
reply: '250-8BITMIME\r\n'
reply: '250-BINARYMIME\r\n'
reply: '250-CHUNKING\r\n'
reply: '250-XEXCH50\r\n'
reply: '250 XSHADOW\r\n'
reply: retcode (250); Msg: smtp.mycompany.net Hello [10.1.*.*]
SIZE 31457280
PIPELINING
DSN
ENHANCEDSTATUSCODES
STARTTLS
AUTH
8BITMIME
BINARYMIME
CHUNKING
XEXCH50
XSHADOW
send: 'STARTTLS\r\n'
reply: '220 2.0.0 SMTP server ready\r\n'
reply: retcode (220); Msg: 2.0.0 SMTP server ready
send: 'ehlo mycomputer.mycompany.net\r\n'
reply: '250-smtp.mycompany.net Hello [10.1.*.*]\r\n'
reply: '250-SIZE 31457280\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-DSN\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250-AUTH\r\n'
reply: '250-8BITMIME\r\n'
reply: '250-BINARYMIME\r\n'
reply: '250-CHUNKING\r\n'
reply: '250-XEXCH50\r\n'
reply: '250 XSHADOW\r\n'
reply: retcode (250); Msg: smtp.mycompany.net Hello [10.1.*.*]
SIZE 31457280
PIPELINING
DSN
ENHANCEDSTATUSCODES
AUTH
8BITMIME
BINARYMIME
CHUNKING
XEXCH50
XSHADOW
ERROR: No suitable authentication method found. replication module send spool email reports failed to run