@@ -60,9 +60,10 @@ def get_att(self, msg_in, str_day):
60
60
result .append (content )
61
61
return "," .join (result )
62
62
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))
66
67
# 连接到POP3服务器,有些邮箱服务器需要ssl加密,可以使用poplib.POP3_SSL
67
68
try :
68
69
telnetlib .Telnet (self .pop3_server , 995 )
@@ -73,7 +74,7 @@ def run_ing(self):
73
74
# server.set_debuglevel(1) # 可以打开或关闭调试信息
74
75
75
76
# 打印POP3服务器的欢迎文字:
76
- print ("身份验证成功,下面为测试输出:{}" .format (self .server .getwelcome ().decode ('utf-8' )))
77
+ # print("身份验证成功,下面为测试输出:{}".format(self.server.getwelcome().decode('utf-8')))
77
78
# 身份认证:
78
79
self .server .user (self .user )
79
80
self .server .pass_ (self .password )
@@ -91,32 +92,30 @@ def run_ing(self):
91
92
92
93
# for i in range(1, index + 1):# 顺序遍历邮件
93
94
resp , lines , octets = self .server .retr (i )
95
+
94
96
# lines存储了邮件的原始文本的每一行,
95
97
# 邮件的原始文本:
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
+
104
105
105
106
# 方法2:from or Form均可
106
107
From = parseaddr (msg .get ('from' ))[1 ]
107
108
To = parseaddr (msg .get ('To' ))[1 ]
108
109
Cc = parseaddr (msg .get_all ('Cc' ))[1 ] # 抄送人
109
110
Subject = self .decode_str (msg .get ('Subject' ))
110
- print ('发件人:%s,收件人:%s,抄送人:%s,主题:%s' % (From , To , Cc , Subject ))
111
- # 获取邮件时间,格式化收件时间
112
111
date1 = time .strptime (msg .get ("Date" )[0 :24 ], '%a, %d %b %Y %H:%M:%S' )
112
+
113
113
# 邮件时间格式转换
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 ))
120
119
content = self .get_att (msg , str_day )
121
120
print ("邮件正文:{} \n " .format (content ))
122
121
# 可以根据邮件索引号直接从服务器删除邮件:
@@ -126,18 +125,20 @@ def run_ing(self):
126
125
127
126
128
127
if __name__ == '__main__' :
129
- try :
130
- # 输入邮件地址, 口令和POP3服务器地址:
128
+
129
+ # 收件人邮箱及密码
131
130
user = '15735656005@163.com'
132
- # 此处密码是授权码,用于登录第三方邮件客户端
133
131
password = 'zslswmz1'
134
- eamil_server = 'pop.163.com'
135
132
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'
138
139
139
- except Exception as e :
140
- import traceback
141
140
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