一.SMTP发送邮件
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。
实例:
#导入模块
import email.mime.multipart
import email.mime.text
import smtplib
#首先创建一个消息对象:
msg = email.mime.multipart.MIMEMultipart()
#指明邮件的发件人
msg['from'] = '13612093770@163.com'
#指明邮件的收件人
msg['to'] = '13612093770@163.com'
#指明邮件的主题
msg['subject'] = 'six god !'
#定义发送信息的内容
context = '''
<h1>hello</h1>
你好,
这是一封自动发送的邮件。
'''
text = email.mime.text.MIMEText(_text=context, _subtype="html")
#_subtype这个参数决定了你是以html解析的形式去发送,还是以text的形式去发送。(text形式则不写此参数)
msg.attach(text)
#创建一个smtp对象
em = smtplib.SMTP_SSL()
连接smtp服务器,端口
em.connect("smtp.163.com", 465)
#登录自己邮箱账号
em.login("13612093770@163.com", 'password')
#调用发送消息函数,参数:发件人,收件人,消息内容
em.sendmail(from_addr='13612093770@163.com', to_addrs='13612093770@163.com', msg=msg.as_string())
#关闭连接
em.quit()
运行之后查看邮箱:可见消息内容已经按照HTML格式解析发送了。
我们将_subtype="html"此参数删除,再次发送:可以看见直接以文本形式发送了。
二.使用yagmail模块发送邮件
安装模块
pip install yagmail
实例:
#导入模块
import yagmail as yagmail #连接邮箱服务器,即发件人 xinxi = { "user":"13612093770@163.com", "password":"password", "host":"smtp.163.com", "port":"465" }
#定义收件人 to = "13612093770@163.com"
#定义邮件主题 subject ="测试"
#定义邮件内容 contents = "demaixya"
#连接邮箱服务器 email = yagmail.SMTP(**xinxi)
#发送邮件,参数:收件人,主题,内容,附件,抄送cc=“xxx.com”(此处没进行抄送) email.send(to=to,subject=subject,contents=contents,attachments="demon1.py")
运行之后查看邮件:
给多个用户发送邮件,只需要将接收邮箱 变成一个list即可。
#定义收件人
to = ["13612093770@163.com","xxx.com"]
发送带多个附件的邮件,也是变成一个list
["d://log.txt","d://baidu_img.jpg"]