python的smtp邮件发送

python内置了许多库来让我们来实现邮箱的发送:

直接上代码,上了在解释:

from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.utils import parseaddr, formataddr
import smtplib
def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))
msg=MIMEText('hello, send by Python...', 'plain', 'utf-8')
from_addr = 'xxxxx'
password = 'xxxxx'
to_addr = 'xxxxx'

smtp_server = 'xxxxx'
msg['From'] = _format_addr('Python 爱好者 <%s>' % from_addr)
msg['To'] = _format_addr('from <%s>' % to_addr)
msg['Subject'] = Header('开心', 'utf-8').encode()

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()
第一次写,有点激动,基于我自己的理解,如有错误,希望你们帮我纠正。

python的邮件是基于我们登陆一个目标邮箱后,通过一系列的传递,最后到达目标邮箱。

msg=MIMEText() 传输的内容,plain是文字,还有html等等。。。

然后是我们发送message的主题,来源,等一切header,写好才不会被当做是垃圾邮件。

smtp.SMTP_SSL ()          #这个是将邮件通过SSL协议加密

server.set_debuglevel(1)         #这个是将邮件发送的过程显示到我们的结果当中

然后是将我们写好的密码账号登陆服务器,这些相信大家都懂,最近多出来一个授权码,所以写登陆密码的时候,需要注意一下这个授权码不是邮箱密码。

提供一下网易和qq的smtp服务器地址和端口:
网易:  smtp.163.com  端口:465

 q q:      smtp.qq.com   端口:465

这里有个问题需要注意,网易的邮箱不支持附件传输,所以实验的话用qq的邮箱就好了


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值