나는 블랙리스트와 비교하여 IP 주소를 검사하는 스크립트에서 일하고 있으며 목록에 IP가있는 경우에만 전자 메일을 보냅니다. 스크립트는 15 분마다 실행되도록 설정되지만 IP가 목록에 있고 전자 메일이 지난 24 시간 내에 전송되지 않은 경우에만 전자 메일을 보내도록 할 수 있습니다.
이 sentFolder = server.select("SENT",readonly=TRUE)
이메일 보내기 지난 24 시간 동안 보내지 않았다면
오류 코드는 다음과 같습니다 : AttributeError: 'SMTP' object has no attribute 'select'
는 그 조각없이 (스크립트의 나머지 부분을 테스트 한 현재 코드 :에
import sys
import subprocess
import smtplib
import datetime
username = ''
password = ''
fromaddr = ''
toaddr = ''
server = smtplib.SMTP(host=,port=)
server.starttls()
server.ehlo()
server.esmtp_features["auth"] = "LOGIN PLAIN"
server.login(username,password)
sentFolder = server.select("SENT",readonly=TRUE)
recentSent = sentFolder["Date"]
OneDayAgo = date.today()-timedelta(days=1)
msg = ''
staticIPAddress = ''
dnsHostname = staticIPAddress + ".bl.spamcop.net"
p = subprocess.check_output("nslookup " + dnsHostname1,stderr=subprocess.STDOUT,shell=False)
if ('Non-existent' not in str(p) and recentSent < OneDayAgo):
server.sendmail(fromaddr, toaddrs, msg)
내가로 실행 오류가 발생합니다 recentSent없이 < OneDayAgo 조각) 그리고 그것은 잘 작동하는 것 같습니다.
"지난 24 시간 내에 보내지 않으면 보낼 것"이라는 작품을 만드는 방법에 대한 도움은 정말 감사하겠습니다.
'server.select()'가 무엇을 기대합니까? 문서가 어딘지를 찾았습니까? –
@ Robᵩ 나는 이것을 [this] (http://stackoverflow.com/questions/5572589/python-forward-imap-email-with-attachments-imaplib-smtplib)에 근거하여 사용했다. –
그 점에서, 'M'은 [imaplib.IMAP4_SSL'] (http://docs.python.org/2/library/imaplib.html) 객체입니다. 프로그램에서'server'는 ['smtplib.SMTP'] (http://docs.python.org/2/library/smtplib.html)입니다. 그들은 전적으로 무관합니다. –