python发送邮件接收邮件示例分享
接收邮件
代码如下:
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()

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam aplikasi web, selalunya perlu menghantar e-mel kepada berbilang penerima sekaligus. PHP ialah bahasa pembangunan web yang sangat popular, dan PHPMailer ialah perpustakaan kelas PHP biasa untuk menghantar e-mel. PHPMailer menyediakan antara muka yang kaya, menjadikan penghantaran e-mel dalam aplikasi PHP lebih mudah dan mudah digunakan. Dalam artikel ini, kami akan memperkenalkan kaedah dan langkah tentang cara menggunakan PHPMailer untuk menghantar e-mel kepada berbilang penerima. Untuk memuat turun PHPMailer, anda perlu pergi ke laman web rasmi (

Amalan pembangunan PHP: Gunakan PHPMailer untuk menghantar e-mel kepada pengguna dalam pangkalan data MySQL Pengenalan: Dalam pembinaan Internet moden, e-mel ialah alat komunikasi yang penting. Sama ada pendaftaran pengguna, tetapan semula kata laluan atau pengesahan pesanan dalam e-dagang, menghantar e-mel adalah fungsi penting. Artikel ini akan memperkenalkan cara menggunakan PHPMailer untuk menghantar e-mel dan menyimpan maklumat e-mel ke jadual maklumat pengguna dalam pangkalan data MySQL. 1. Pasang pustaka PHPMailer PHPMailer ialah

Cara menggunakan Flask-Mail untuk menghantar e-mel Dengan perkembangan Internet, e-mel telah menjadi alat penting untuk orang ramai berkomunikasi. Apabila membangunkan aplikasi web, kadangkala kita perlu menghantar e-mel dalam senario tertentu, seperti menghantar e-mel alu-aluan selepas pengguna berjaya mendaftar, atau menghantar e-mel tetapan semula kata laluan apabila pengguna terlupa kata laluan mereka, dsb. Flask ialah rangka kerja Web Python yang ringkas dan fleksibel, dan Flask-Mail ialah perpustakaan sambungan untuk menghantar e-mel di bawah rangka kerja Flask Artikel ini akan memperkenalkan cara untuk

Python menyambung ke antara muka Alibaba Cloud untuk melaksanakan fungsi penghantaran e-mel Alibaba Cloud menyediakan satu siri antara muka perkhidmatan, termasuk perkhidmatan penghantaran e-mel. Dengan menyambung ke antara muka Alibaba Cloud melalui skrip Python, kami boleh menghantar e-mel dengan cepat. Artikel ini akan menunjukkan kepada anda cara menggunakan skrip Python untuk menyambung ke antara muka Alibaba Cloud dan melaksanakan fungsi penghantaran e-mel. Pertama, kami perlu memohon perkhidmatan penghantaran e-mel di Alibaba Cloud dan mendapatkan maklumat antara muka yang sepadan. Dalam Konsol Pengurusan Awan Alibaba, pilih perkhidmatan tolak e-mel dan buat e-mel baharu

Bagaimana untuk menghantar mel menggunakan baris gilir PHP? Dalam pembangunan web moden, kita selalunya perlu menghantar sejumlah besar e-mel. Sama ada anda menghantar e-mel pukal kepada sebilangan besar pengguna atau menghantar e-mel yang diperibadikan berdasarkan tingkah laku pengguna, menggunakan baris gilir untuk menghantar e-mel ialah amalan yang bagus. Baris gilir boleh membantu kami meningkatkan kecekapan dan kestabilan penghantaran e-mel, mengelakkan beban pelayan yang berlebihan disebabkan oleh menghantar terlalu banyak e-mel dan juga boleh mengendalikan senario di mana penghantaran gagal. Dalam pembangunan PHP, kita boleh menggunakan alat giliran biasa seperti Rab

Cara menggunakan modul poplib untuk menerima e-mel dalam Python3.x E-mel ialah kaedah komunikasi yang sering digunakan oleh orang ramai dalam kehidupan dan kerja seharian. Dalam Python, kita boleh menggunakan modul poplib untuk menerima e-mel. Modul poplib menyediakan satu siri kaedah untuk menyambung ke pelayan mel, mendapatkan mel, memadam mel, dsb. Artikel ini akan memperkenalkan cara menggunakan modul poplib untuk menerima e-mel dan melampirkan contoh kod yang sepadan. Pasang modul poplib dan gunakan modul poplib

Dengan pembangunan dan pempopularan Internet yang berterusan, e-mel telah menjadi bahagian penting dalam komunikasi harian orang ramai. Semasa proses pembangunan bahagian belakang laman web, selalunya perlu menggunakan PHP untuk menghantar e-mel untuk memenuhi fungsi seperti pemberitahuan e-mel dan pengesahan pendaftaran. PHP menyediakan fungsi e-mel() untuk menghantar e-mel, dan ia sangat mudah digunakan. Artikel ini akan memperkenalkan secara terperinci cara menggunakan fungsi e-mel() PHP untuk menghantar e-mel. 1. Konfigurasi SMTP Sebelum menggunakan fungsi e-mel() untuk menghantar e-mel, SMTP perlu dikonfigurasikan.

Proses lengkap menghantar e-mel menggunakan fungsi mel dalam PHP Dengan perkembangan teknologi Internet, e-mel memainkan peranan yang semakin penting dalam kehidupan seharian telah menjadi kerja dan gaya hidup yang penting. Dalam pembangunan laman web, selalunya perlu melakukan pelbagai pemberitahuan, pengesahan, pendaftaran, dan lain-lain melalui e-mel. Artikel ini akan memperkenalkan proses lengkap menghantar e-mel menggunakan fungsi mel dalam PHP. 1. Bentuk asas fungsi mel Dalam PHP, fungsi yang digunakan untuk menghantar e-mel ialah mel().
