发邮件是一种很常见的操作,本篇主要介绍一下如何用python实现自动发件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.image import MIMEImage
import time
mail_host = "smtp.126.com"
mail_user = "xxx@126.com"
mail_pass = "******" #注意如果邮箱开启了授权码,此处要填写授权码,否则会报smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')
sender = "xxx@126.com"
receiver = [ '邮箱1' , '邮箱2' ] #群发邮件
for i in range (n): #自定义循环发多少遍
try :
message = MIMEMultipart()
message[ "From" ] = Header(sender)
message[ "To" ] = ',' .join(receiver)
message[ "Subject" ] = Header( "主题" , "utf-8" ).encode() #主题
message.attach(MIMEText( "正文" , "plain" , "utf-8" )) #正文
"""
定附件
"""
att = MIMEText( open (r 'C:\Users\Administrator\Desktop\1.txt' ).read(), "base64" , "utf-8" )
att[ "Content-Type" ] = 'application/octet-stream'
att.add_header( "Content-Disposition" , 'attachment' , filename = "1.txt" ) #这一步可避免文件不能正常打开
message.attach(att)
"""
构造图片(以附件形式上传)
"""
image = MIMEImage( open (r 'C:\Users\Administrator\Desktop\1.jpg' , 'rb' ).read())
image.add_header( 'Content-ID' , '<image1>' ) #可避免图片不能正常打开
image[ "Content-Disposition" ] = 'attachment; filename="picture.jpg"'
message.attach(image)
"""
发送邮件
"""
smtp = smtplib.SMTP_SSL(host = mail_host)
smtp.connect(host = mail_host, port = 465 )
smtp.login(mail_user, mail_pass)
smtp.sendmail(sender, message[ 'To' ].split( ',' ), message.as_string())
print ( "在%s第" % ctime(), str (i + 1 ), "封邮件发送" )
smtp.quit()
except smtplib.SMTPException as e:
raise e
|
最终实现
到此这篇关于python实现邮件循环自动发件功能的文章就介绍到这了,更多相关python邮件循环自动发件内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/liyali2020/article/details/108463287