最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python发送邮件接收邮件示例分享

来源:动视网 责编:小采 时间:2020-11-27 14:39:00
文档

python发送邮件接收邮件示例分享

python发送邮件接收邮件示例分享:接收邮件 代码如下:import poplib,pdb,email,re,timefrom email import header POP_ADDR = r'pop.126.com'USER = ''PASS = ''CONFIG = '' def getYear(date): rslt = re.search(r'\b2\d{3}\b', dat
推荐度:
导读python发送邮件接收邮件示例分享:接收邮件 代码如下:import poplib,pdb,email,re,timefrom email import header POP_ADDR = r'pop.126.com'USER = ''PASS = ''CONFIG = '' def getYear(date): rslt = re.search(r'\b2\d{3}\b', dat


接收邮件

代码如下:


import poplib,pdb,email,re,time
from email import header

POP_ADDR = r'pop.126.com'
USER = ''
PASS = ''
CONFIG = ''

def getYear(date):
rslt = re.search(r'\b2\d{3}\b', date)
return int(rslt.group())

def getMonth(date):
monthMap = {'Jan':1,'Feb':2,'Mar':3,'Apr':4,'May':5,'Jun':6,
'Jul':7,'Aug':8,'Sep':9,'Oct':10,'Nov':11,'Dec':12,}

rslt = re.findall(r'\b\w{3}\b', date)
for i in range(len(rslt)):
month = monthMap.get(rslt[i])
if None != month:
break

return month

def getDay(date):
rslt = re.search(r'\b\d{1,2}\b', date)
return int(rslt.group())

def getTime(date):
rslt = re.search(r'\b\d{2}:\d{2}:\d{2}\b', date)
timeList = rslt.group().split(':')

for i in range(len(timeList)):
timeList[i] = int(timeList[i])

return timeList

def transformDate(date):
rslt = getYear(date)
rslt = rslt * 100
rslt = rslt + getMonth(date)
rslt = rslt * 100
rslt = rslt + getDay(date)

timeList = getTime(date)
for i in range(len(timeList)):
rslt = rslt * 100
rslt = rslt + timeList[i]

print(rslt)
return rslt

def getRecentReadMailTime():
fp = open(CONFIG, 'r')
rrTime = fp.read()
fp.close()
return rrTime

def setRecentReadMailTime():
fp = open(CONFIG, 'w')
fp.write(time.ctime())
fp.close()
return

def parseMailSubject(msg):
subSrt = msg.get('subject')
if None == subSrt:
subject = '无主题'
else:
subList = header.decode_header(subSrt)
subinfo = subList[0][0]
subcode = subList[0][1]

if isinstance(subinfo,bytes):
subject = subinfo.decode(subcode)
else:
subject = subinfo

print(subject)

def parseMailContent(msg):
if msg.is_multipart():
for part in msg.get_payload():
parseMailContent(part)
else:
bMsgStr = msg.get_payload(decode=True)
charset = msg.get_param('charset')
msgStr = 'Decode Failed'
try:
if None == charset:
msgStr = bMsgStr.decode()
else:
msgStr = bMsgStr.decode(charset)
except:
pass

print(msgStr)

def recvEmail():
server = poplib.POP3(POP_ADDR)
server.user(USER)
server.pass_(PASS)

mailCount,size = server.stat()
mailNoList = list(range(mailCount))
mailNoList.reverse()

hisTime = transformDate(getRecentReadMailTime())
setRecentReadMailTime()
#pdb.set_trace()
for i in mailNoList:
message = server.retr(i+1)[1]
mail = email.message_from_bytes(b'\n'.join(message))

if transformDate(mail.get('Date')) > hisTime:
parseMailSubject(mail)
#parseMailContent(mail)
else:
break

recvEmail()

发送邮件:

代码如下:


import os,pdb,smtplib,time,mimetypes
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.audio import MIMEAudio
from email.mime.image import MIMEImage

COMMASPACE = ','
SONG_PATH = r''
RECORD_FILE = ''
PIC_PATH = ''
CC = []
TO = []
ME = ''
SMTP_SERVER = 'smtp.126.com'
USER = ''
PASS = ''

def constructAddr(addrList):
return COMMASPACE.join(addrList)

def willChooseThisMedia(media, path):
fp = open(path + RECORD_FILE, 'r')
shareInfo = fp.read()
fp.close()

shareInfoList = shareInfo.split('\n')

if media not in shareInfoList:
fp = open(path + RECORD_FILE, 'a')
fp.write(media + '\n')
fp.close()
return True
else:
return False

def getTodayMedia(path):
mediaList = os.listdir(path)

for media in mediaList:
if False == os.path.isfile(path + media):
continue
else:
if (media.endswith('mp3') or media.lower().endswith('jpg')) and\
willChooseThisMedia(media, path):
return media

def getMIMEImage(pic):
fp = open(PIC_PATH + pic, 'rb')
imageType = mimetypes.guess_type(PIC_PATH + pic)
image = MIMEImage(fp.read(),imageType[0].split('/')[1])
fp.close()
image.add_header('Content-Disposition', 'attachment')
image.set_param('filename', pic, header = 'Content-Disposition', charset = 'gb2312')

return image

def getMIMEAudio(song):
fp = open(SONG_PATH + song, 'rb')
audioType = mimetypes.guess_type(SONG_PATH + song)
audio = MIMEAudio(fp.read(),audioType[0].split('/')[1])
fp.close()
audio.add_header('Content-Disposition', 'attachment')
audio.set_param('filename', song, header = 'Content-Disposition', charset = 'gb2312')

return audio

def constructMail():
mail = MIMEMultipart()

song = getTodayMedia(SONG_PATH)
pic = getTodayMedia(PIC_PATH)

mailSubject = Header('今日分享 | ' + song, 'utf-8')
mailDate = Header(time.ctime())

mail['subject'] = mailSubject
mail['date'] = mailDate
mail['to'] = constructAddr(TO)
mail['cc'] = constructAddr(CC)
mail['from'] = ME

mailBody = MIMEText(song, _charset='gb2312')
mail.attach(mailBody)
mail.attach(getMIMEAudio(song))
mail.attach(getMIMEImage(pic))
return mail

def sendMail():
session = smtplib.SMTP(SMTP_SERVER)
session.login(USER,PASS)
mail = constructMail()
session.sendmail(ME, constructAddr(TO), mail.as_string())
session.quit()

sendMail()

文档

python发送邮件接收邮件示例分享

python发送邮件接收邮件示例分享:接收邮件 代码如下:import poplib,pdb,email,re,timefrom email import header POP_ADDR = r'pop.126.com'USER = ''PASS = ''CONFIG = '' def getYear(date): rslt = re.search(r'\b2\d{3}\b', dat
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top