python2.7发送邮件和python3.7接收邮件

Posted on 2020-06-13 11:05  风行天下-2080  阅读(349)  评论(0编辑  收藏  举报

1、使用python发送邮件(经测试可以用)

https://www.jb51.net/article/130411.htm

环境:python2.7

#coding:utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import smtplib
from smtplib import SMTP
from email.mime.text import MIMEText
from email.header import Header
 
#构造纯文本邮件内容
msg = MIMEText('hello,send by Python.....','plain','utf-8')
 
#发送者邮箱
sender = 'xxxxx@XXXXX.com.cn'
 
#发送者的登陆用户名和密码
user = 'xxxxx@XXXX.com.cn'
password = 'xxxxxx'
 
#发送者邮箱的SMTP服务器地址
smtpserver = 'xxxx'
 
#接收者的邮箱地址
receiver = ['xxxxxx@qq.com','xxxxxx@outlook.com'] #receiver 可以是一个list
 
smtp = smtplib.SMTP() #实例化SMTP对象
smtp.connect(smtpserver,25) #(缺省)默认端口是25 也可以根据服务器进行设定
smtp.login(user,password) #登陆smtp服务器
smtp.sendmail(sender,receiver,msg.as_string()) #发送邮件 ,这里有三个参数
'''
login()方法用来登录SMTP服务器,sendmail()方法就是发邮件,由于可以一次发给多个人,所以传入一个list,邮件正文
是一个str,as_string()把MIMEText对象变成str。
'''
smtp.quit()

 

2、Python3接收邮件

python3获取163邮件  
(https://www.jianshu.com/p/097e01edfef6)

环境:python3.7

参考地址:(https://www.jb51.net/article/169797.htm)

# coding:utf-8
import poplib
import re
import tkinter
class Window:
def __init__(self,root):
label1 = tkinter.Label(root,text='POP3')
label2 = tkinter.Label(root,text='Port')
label3 = tkinter.Label(root,text='用户名:')
label4 = tkinter.Label(root,text='密 码:')
label1.place(x=5,y=5)
label2.place(x=5,y=30)
label3.place(x=5,y=55)
label4.place(x=5,y=80)
self.entryPop = tkinter.Entry(root)
self.entryPort = tkinter.Entry(root)
self.entryUser = tkinter.Entry(root)
self.entryPass = tkinter.Entry(root,show = '*')
self.entryPort.insert(tkinter.END,'110')
self.entryPop.place(x=50,y=5)
self.entryPort.place(x=50,y=30)
self.entryUser.place(x=50,y=55)
self.entryPass.place(x=50,y=80)
self.get = tkinter.Button(root,text='收取邮件',command = self.Get)
self.get.place(x=60,y=120)
self.text=tkinter.Text(root)
self.text.place(y=150)
def Get(self):
try:
host = self.entryPop.get()
port =int(self.entryPort.get())
user = self.entryUser.get()
pw = self.entryPass.get()
pop=poplib.POP3(host)
pop.user(user)
pop.pass_(pw)
stat=pop.stat()
self.text.insert(tkinter.END,'Staus:%d message(s),%d bytes\n' % stat)
rx_headers = re.compile(r"^(From|To|Subject)")
for n in range(stat[0]):
response,lines,bytes = pop.top(n+1,10)
self.text.insert(tkinter.END,"Message %d (%d bytes)\n" % (n+1,bytes))
self.text.insert(tkinter.END,"-"*30+'\n')
str_lines=[]
for l in lines:
str_lines.append(l.decode(encoding = 'utf-8'))
self.text.insert(tkinter.END,"\n".join(filter(rx_headers.match,str_lines)))
self.text.insert(tkinter.END,'\n')
self.text.insert(tkinter.END,"-"*30+'\n')
except Exception as e:
self.text.insert(tkinter.END,'接收错误\n')
root =tkinter.Tk()
window=Window(root)
root.mainloop()

Copyright © 2024 风行天下-2080
Powered by .NET 8.0 on Kubernetes