2011-01-26 4 views
0

나는 항상 내 이메일을 확인하지 않으려 고하므로 모든 이메일을 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을 사용하면 계정 소유자가 아닌 다른 수신자와 이메일을 보낼 수 없습니다. 왜 이메일이 지연되어 나타나는지, 그리고 문제를 해결하기 위해 내가 할 수있는 일을 알고 있습니까? 감사합니다, 케빈

+0

혹시 메일 클라이언트에 대해 들어 보셨습니까? Thunderbird, Outlook, Evolution 등을 통해 여러 이메일 계정을 모니터링하고 데스크탑에 알림을받을 수 있습니다. –

+0

안녕하세요 Rafe, 제 아이디어는 현재 이메일을 너무 자주 확인하므로 내 이메일을 확인하지 않는 것입니다. 로그인 할 때마다 이메일을받을 수있는 것보다 다운로드 프로세스가 자동화 된 경우 더 좋은 의지가 있습니다. –

답변

0

메일 서버 로그를 살펴보십시오. 나는 당신의 이메일을 받아들이지 않는 GMail에 대해 많은 에러가있을 것이라고 생각한다. (호스트가 너무 많은 이메일을 보낸 이유는 다른 이유이다.) 그리고 메일 서버는 평소와 다름이 없다. .

GMail과 비슷한 유형의 사용을 위해 언젠가 갑자기 언젠가는 저에게 일어났습니다.

1

보낸 메일의 메일 헤더를 살펴보십시오. 타임 스탬프와 함께 각 메일 서버에 하나씩 추가됩니다. 그러면 범인을 볼 수 있습니다.

+0

범인을 찾았 으면 어떻게해야 더 빨리 할 수 ​​있습니까? –

+0

일반적으로 두 개의 메일 서버 만 있습니다. 메일을 중계하는 데 사용하는 메일입니다 (예 : 메일 계정이있는 메일 서버 및 대상 메일 서버가 있지만 대상에 따라 이론적으로 더 많은 홉이있을 수 있습니다. 메일 서버가 범인 인 경우 다른 제공 업체를 사용하여 메일을 보냅니다. 자동화 된 서버 메일을 보낼 때만 사용하는 일부 Google 계정이 있는데 아직 문제가 발생하지 않았습니다. – Daniel