python 邮件发送

一.SMTP发送邮件
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
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"]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值