Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8b005c7

Browse files
committed
指定收件人 发件人 定时刷新
1 parent d532a6e commit 8b005c7

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

接收邮件脚本/main.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@ def get_att(self, msg_in, str_day):
6060
result.append(content)
6161
return ",".join(result)
6262

63-
def run_ing(self):
64-
str_day = str(datetime.date.today()) # 日期赋值
65-
print("获取时间:{}".format(str_day))
63+
def run_ing(self, users, second):
64+
65+
str_day = str(datetime.datetime.now() - datetime.timedelta(seconds=second + 30)) # 日期赋值
66+
# print("获取时间:{}".format(str_day))
6667
# 连接到POP3服务器,有些邮箱服务器需要ssl加密,可以使用poplib.POP3_SSL
6768
try:
6869
telnetlib.Telnet(self.pop3_server, 995)
@@ -73,7 +74,7 @@ def run_ing(self):
7374
# server.set_debuglevel(1) # 可以打开或关闭调试信息
7475

7576
# 打印POP3服务器的欢迎文字:
76-
print("身份验证成功,下面为测试输出:{}".format(self.server.getwelcome().decode('utf-8')))
77+
# print("身份验证成功,下面为测试输出:{}".format(self.server.getwelcome().decode('utf-8')))
7778
# 身份认证:
7879
self.server.user(self.user)
7980
self.server.pass_(self.password)
@@ -91,32 +92,30 @@ def run_ing(self):
9192

9293
# for i in range(1, index + 1):# 顺序遍历邮件
9394
resp, lines, octets = self.server.retr(i)
95+
9496
# lines存储了邮件的原始文本的每一行,
9597
# 邮件的原始文本:
96-
msg_content = b'\r\n'.join(lines).decode('utf-8')
97-
# 解析邮件:
98-
msg = Parser().parsestr(msg_content)
99-
# 获取邮件的发件人,收件人, 抄送人,主题
100-
# hdr, addr = parseaddr(msg.get('From'))
101-
# From = self.decode_str(hdr)
102-
# hdr, addr = parseaddr(msg.get('To'))
103-
# To = self.decode_str(hdr)
98+
try:
99+
msg_content = b'\r\n'.join(lines).decode('utf-8')
100+
# 解析邮件:
101+
msg = Parser().parsestr(msg_content)
102+
except Exception:
103+
pass
104+
104105

105106
# 方法2:from or Form均可
106107
From = parseaddr(msg.get('from'))[1]
107108
To = parseaddr(msg.get('To'))[1]
108109
Cc = parseaddr(msg.get_all('Cc'))[1] # 抄送人
109110
Subject = self.decode_str(msg.get('Subject'))
110-
print('发件人:%s,收件人:%s,抄送人:%s,主题:%s' % (From, To, Cc, Subject))
111-
# 获取邮件时间,格式化收件时间
112111
date1 = time.strptime(msg.get("Date")[0:24], '%a, %d %b %Y %H:%M:%S')
112+
113113
# 邮件时间格式转换
114-
date2 = time.strftime("%Y-%m-%d", date1)
115-
if date2 < str_day:
116-
break # 倒叙用break
117-
# continue # 顺叙用continue
118-
else:
119-
# 获取内容
114+
date2 = time.strftime("%Y-%m-%d %H:%M:%S", date1)
115+
116+
if From in users and date2 >= str_day:
117+
print("\n")
118+
print('发件人:%s,收件人:%s,抄送人:%s,主题:%s,发件时间:%s' % (From, To, Cc, Subject, date2))
120119
content = self.get_att(msg, str_day)
121120
print("邮件正文:{} \n".format(content))
122121
# 可以根据邮件索引号直接从服务器删除邮件:
@@ -126,18 +125,20 @@ def run_ing(self):
126125

127126

128127
if __name__ == '__main__':
129-
try:
130-
# 输入邮件地址, 口令和POP3服务器地址:
128+
129+
# 收件人邮箱及密码
131130
user = '15735656005@163.com'
132-
# 此处密码是授权码,用于登录第三方邮件客户端
133131
password = 'zslswmz1'
134-
eamil_server = 'pop.163.com'
135132

136-
email_class = down_email(user=user, password=password, eamil_server=eamil_server)
137-
email_class.run_ing()
133+
# 指定发件人
134+
users = ['WebStockWh8@wenhua.com.cn', '3405987953@qq.com', '1364826576@qq.com']
135+
# 刷新时间间隔
136+
time_s = 10
137+
138+
eamil_server = 'pop.163.com'
138139

139-
except Exception as e:
140-
import traceback
141140

142-
ex_msg = '{exception}'.format(exception=traceback.format_exc())
143-
print(ex_msg)
141+
email_class = down_email(user=user, password=password, eamil_server=eamil_server)
142+
while 1:
143+
email_class.run_ing(users, time_s)
144+
time.sleep(time_s)

0 commit comments

Comments
 (0)