나는 항상 내 이메일을 확인하지 않으려 고하므로 모든 이메일을 4 시간마다 한 번 다운로드합니다. Gmail 계정에서 읽지 않은 메일을 가져온 다음 내가 확인한 계정으로 보내는 cron 작업이 있습니다.12 시간 지연 후 전달하는 Python sendmail()
최근에는 메시지가 일관되게 나타나지 않고 때로는 하루가 지났습니다. 모든 메시지가 올바르게 전송되지만 지연은 기괴합니다.
여기 내 코드입니다 :
imap_domain = "imap.gmail.com"
imap_port = 993
imap_username = '[email protected]'
imap_password = 'mypassword'
#smtp settings
smtp_domain = "mail.kburke.org"
smtp_port = 2626
smtp_username = "[email protected]"
smtp_password = "mypassword"
recipient = ['[email protected]']
imap_server = imaplib.IMAP4_SSL(imap_domain, imap_port)
imap_server.login(imap_username, imap_password)
imap_server.select('INBOX')
status, email_ids = imap_server.search(None, '(UNSEEN)')
server = smtplib.SMTP(smtp_domain, smtp_port)
server.ehlo()
server.starttls()
server.ehlo()
server.login(smtp_username, smtp_password)
for e in email_ids[0].split(' '):
if e is not '':
try:
raw_msg = imap_server.fetch(e, '(RFC822)')
msg = email.message_from_string(raw_msg[1][0][1])
#modify reply-to so we preserve email address
if not msg['Reply-To']:
msg['Reply-To'] = msg['From']
result = server.sendmail(msg['From'], recipient, msg.as_string())
내가 Gmail 계정에서 보내는 것이 좋을 것이라고 생각하지만, Gmail을 사용하면 계정 소유자가 아닌 다른 수신자와 이메일을 보낼 수 없습니다. 왜 이메일이 지연되어 나타나는지, 그리고 문제를 해결하기 위해 내가 할 수있는 일을 알고 있습니까? 감사합니다, 케빈
혹시 메일 클라이언트에 대해 들어 보셨습니까? Thunderbird, Outlook, Evolution 등을 통해 여러 이메일 계정을 모니터링하고 데스크탑에 알림을받을 수 있습니다. –
안녕하세요 Rafe, 제 아이디어는 현재 이메일을 너무 자주 확인하므로 내 이메일을 확인하지 않는 것입니다. 로그인 할 때마다 이메일을받을 수있는 것보다 다운로드 프로세스가 자동화 된 경우 더 좋은 의지가 있습니다. –