필자는 로컬, 네트워크에서 메일을 수신하고 외부 메일 공급자를 통해 보내는 작은 파이썬 데몬을 작성했습니다. 문제는 일단 연결이 설정되면 전자 메일을 한 번 보낼 수 있지만 다른 전자 메일은 보낼 수 없다는 것입니다.데몬에서 파이썬의 SMTP를 두 번 이상 사용하기
내가 서버과 같이 연결 :
>>> from smtplib import SMTP
>>> smtp = SMTP()
>>> smtp.connect('mail.gmx.net', 587)
(220, b'gmx.com (mrgmx003) Nemesis ESMTP Service ready')
>>> smtp.login('XXX', 'XXX')
(235, b'Authentication succeeded')
>>> smtp.sendmail('XXX', 'XXX', '')
{}
>>> smtp.quit()
(221, b'gmx.com Service closing transmission channel')
모든 이메일이 전송됩니다 잘 작동 다음 코드는 문제를 보여줍니다. 하지만 나중에 같은 일을하면 "503 명령 순서가 잘못되었습니다"라는 오류 메시지가 나타납니다.
>>> smtp.connect('mail.gmx.net', 587)
(220, b'gmx.com (mrgmx003) Nemesis ESMTP Service ready')
을하지만 어느 쪽도이 작동하지 않습니다 : :이 연결은 여전히 작동
>>> smtp.login('XXX', 'XXX')
(503, b'Bad sequence of commands')
나이 :
>>> smtp.sendmail('XXX', 'XXX', '')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.2/smtplib.py", line 749, in sendmail
raise SMTPSenderRefused(code, resp, from_addr)
smtplib.SMTPSenderRefused: (503, b'Bad sequence of commands', 'XXX')
그래서 잘못 여기에 무엇을? "smtp = SMTP()"로 시작하는 모든 일을 다시 수행하면 모든 것이 다시 작동합니다. "smtp.quit()"연결을 재설정하면 안됩니까?
감사합니다.
감사합니다. 실제로 SMTP를 다시 설정하지 않아도 코드가 작동합니다. 감사! –