python口令加密啥意思_python 发送邮件并带附件

感谢简书上一位大佬的笔记,忘记是谁了,不好意思~此文仅作为笔记使用,若侵请联系删除。

如HTTP是计算机用来通过因特网发送网页的协议一样,SMTP(简单邮件传输协议)是用于发送电子邮件的协议。SMTP规定电子邮件应该如何格式化、加密、在邮件服务器之间传递。python的smtplib模块将它们简化成了几个函数。

smtplib主要方法:

1、实例化一个SMTP对象:

s=smtplib.SMTP(邮件服务地址如'smtp@163.com',端口号如'465')

s=smtplib.SMTP_SSL(邮件服务地址如'smtp@163.com',端口号如'465')#SSL加密

2、登陆邮件,权限验证:

s.login(用户名如'sx_199610@163.com',密码)
3、发送邮件:

s.sendmail(发件人邮箱,收件人邮箱,发送内容)

4、断开连接

s.quit()

Email模块:

email支持发送的邮件内容为纯文本、HTML内容、图片、附件。email中有几大类泪针对不同的邮件内容形式,常用如下:

MIMEText:(MIME媒体类型)内容形式为纯文本、HTML页面。

MIMEimage:内容形式为图片。

MIMEMultupart:多形式组合,可包含文本和附件。

代码如下:

from email.mime.text import MIMEText

import smtplib

from email.header import Header

from email.utils import parseaddr,formataddr#设置编码格式

from email.mime.base import MIMEBase

from email.mime.multipart import MIMEMultipart

from email import encoders

#将用户名编码设置成UTF-8

def _format_addr(s):

name,addr=parseaddr(s)

return formataddr((Header(name, 'utf-8').encode(),addr))

#定义email的地址,口令和SMTP服务器地址

from_addr='sx_199610@163.com'

password=input('请输入发送邮箱的密码:') #注意此处输入的密码是自己设置的协议密码

to_addr='sx_wy123@163.com'

smtp_server='smtp.163.com'

#定义邮件本身内容

msg=MIMEMultipart()

msg['From']=_format_addr('发送者的ReedSun<%s>'%from_addr)

msg['To']=_format_addr('接收者的ReedSun<%s>'%to_addr)

msg['Subject']=Header('hhh,这是二封测试信','utf-8').encode()

#定义邮件正文

msg.attach(MIMEText('使用python发来的邮件3','plain','utf-8'))

#加附件

with open(r'C:UsersAdministratorDesktoptesttest0.jpg','rb') as f:

# 设置附件的MIME和文件名,这里是jpg类型,可以换png或其他类型:

mime=MIMEBase('image','jpg',filename='test0.jpg')

mime.add_header('Content-Disposition','attchment',filename='test0.jpg')

mime.add_header('Content-ID','<0>')

mime.add_header('X-Attachment-ID','0')

mime.set_payload(f.read())

encoders.encode_base64(mime)

msg.attach(mime)

#定义发送文件

server=smtplib.SMTP_SSL(smtp_server,465)

server.set_debuglevel(1)

server.login(from_addr,password)

server.sendmail(from_addr,[to_addr],msg.as_string())

server.quit()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值