python发送邮件

1、python发送普通文本的邮件

import smtplib
from email.mime.text import MIMEText    # 往邮件里写东西的对象
from email.header import Header     # 邮件头写东西

# 发件方邮箱:谁发送的
msg_from = "2534661797@qq.com"
# 邮箱授权码
password = "nqspgnomznerebgh"
# 发给谁
msg_to = 'lihao_python@163.com'
# 邮件主题
subject = "测试邮箱"
# 邮件内容
content = "我是邮件内容"
# 创建一个MIMEText对象
msg = MIMEText(content)
# 放入邮件主题
msg['Subject'] = subject
# 也可以这样传参
msg['Subject'] = Header(subject,'utf-8')
# 放入发件人
msg['From'] = msg_from
# 放入收件人
msg['To'] = msg_to
try:
    # 通过ssl方式发送,服务器地址,端口
    s = smtplib.SMTP_SSL('smtp.qq.com',465)
    # 登录到邮箱
    s.login(msg_from,password)
    # 发送邮件
    s.sendmail(msg_from,msg_to,msg.as_string())
    print("发送成功")
except s.SMTPExcetion as e:
    print(e)
finally:
    s.quit()

2、发送html内容邮件,只需要将content改成html代码就行

# 邮件内容
content = '''
    <p>Python 邮件发送测试...</P>
    <p><a href='https://www.baidu.com'>这是一个链接</a></P>
'''

3、发送带附件的邮件

# 发件方邮箱:谁发送的
msg_from = "2534661797@qq.com"
# 邮箱授权码
password = "nqspgnomznerebgh"
# 发给谁
msg_to = 'lihao_python@163.com'
# 邮件主题
subject = "这是今日日报,请查收!"
# 创建一个带附件的实例
msg = MIMEMultipart()
# 放入邮件主题
msg['Subject'] = subject
# 也可以这样传参
# msg['Subject'] = Header(subject,'utf-8')
# 放入发件人
msg['From'] = msg_from
# 放入收件人
msg['To'] = msg_to
# 邮件正文内容
msg.attach(MIMEText('今日日报:1xxx','plain','utf-8'))
# 添加附件-txt
# 构建附件1,传送当前目录下的test.txt文件
att1 = MIMEText(open("test.txt",'rb').read(),'base64','utf-8')
att1['Content-Type'] = 'application/octet-stream'
# 这里的filename可以任意写,写什么名字,邮件显示什么名字
att1['Content-Disposition'] = 'attachment;filename="test.xt"'
msg.attach(att1)

# 添加附件-图片
# 构建附件2,传送当前目录下的图片
with open('test.jpg','rb') as f:
    # 设置附件的MIME和文件名,这里是jpg类型
    mime = MIMEBase('image','jpg',filename='test.jpg')
    # 加上必要的头信息:
    mime.add_header('Content-Disposition','attachment',filename='test.jpg')
    mime.add_header('Content-ID','<0>')
    mime.add_header('X-Attachment-ID','0')
    # 把附件的内容读进来
    mime.set_payload(f.read())
    # 用base64编码
    encoders.encode_base64(mime)
    # 添加到MIMEMultipart中
    msg.attach(mime)


try:
    # 通过ssl方式发送,服务器地址,端口
    s = smtplib.SMTP_SSL('smtp.qq.com',465)
    # 登录到邮箱
    s.login(msg_from,password)
    # 发送邮件
    s.sendmail(msg_from,msg_to,msg.as_string())
    print("发送成功")
except s.SMTPExcetion as e:
    print(e)
finally:
    s.quit()

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值