python-发送qq邮件

利用python实现发送电子邮件

准备工作

  1. 进入qq 邮箱开通POP3/SMTP服务 你会得到一个pop3的授权码记住这个授权码后面会用到
  2. 导入以下内置模块
# import smtplib
# from email.mime.text import MIMEText
# from email.utils import formataddr

代码实现

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

def send_emile():
    my_name="xx"  #发件人姓名
    my_email="xxxxxxxxxx@qq.com"  #发件人邮箱
    my_passwd="xxxssaxasxasxsaxa" #发件人pop3授权码 可在qq邮箱开启功能查看
    to_email="3238138357@qq.com"  #收件人邮箱地址
    to_content="success"  #邮件内容
    to_subject="我的主题"  #邮件主题
    to_name="贺胜"  #发件人姓名
    msg=MIMEText(to_content,"plain","utf-8")  #写入邮件内容

    msg["From"]=formataddr([my_name,my_email])  #发件人信息

    msg["To"]=formataddr([to_name,to_email])  #收件人信息

    msg["Subject"]=to_subject  #邮件主题

    server=smtplib.SMTP("smtp.qq.com",25)  #连接邮箱服务器

    server.login(my_email,my_passwd)  #登录自己邮箱 密码为ppo3授权码

    server.sendmail(my_email,[to_email, ],msg.as_string())  #发送邮件

    server.quit()  #退出邮箱连接

def main():
    send_emile()

运行效果

收件人邮箱

代码解读:

  1. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件

  2. 构造MIMEText对象时,第一个参数是邮件正文;第二个参数是MIME的subtype,传入’plain’表示纯文本,最终的MIME就是’text/plain’;最后一定要用utf-8编码保证多语言兼容性

  3. 发送的邮件需要添加头部信息,头部信息中包含发送者、接收者、邮件主题等信息:message[‘From’]、message[‘To’]、message[‘Subject’]

  4. 构造完要发送的邮件信息后,通过SMTP发出去:login()方法用来登录SMTP服务器;sendmail()方法就是发邮件,由于可以一次发给多个人,所以传入一个list;邮件正文是一个str,as_string()把MIMEText对象变成str

  5. SMTP.close() :关闭SMTP服务器连接

注意事项:

  1. 如果遇到SMTP_SSL语句报错(UnicodeDecodeError:‘utf-8’ codec can’t decode),可能是因为计算机名中含有中文导致的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值