python发送邮件

直接上代码

from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib
# 第三方 SMTP 服务
mail_host="smtp.qq.com"  #设置服务器
mail_user="111@qq.com"    #用户名
mail_pass="adfafda"   #口令

def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))


def send_mail(f, to_addr):
    '''

    :param f: 附件路径
    :param to_addr:发给的人 []
    :return:
    '''
    from_addr = mail_user
    password = mail_pass
    # to_addr = "ashikun@126.com"
    smtp_server = mail_host

    msg = MIMEMultipart()

    # msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
    msg['From'] = _format_addr('坤少发的邮件<%s>' % from_addr)
    msg['To'] = _format_addr('大人 <%s>' % to_addr)
    msg['Subject'] = Header('接口测试报告……', 'utf-8').encode()

    msg.attach(MIMEText('接口测试报告.', 'plain', 'utf-8'))
    part = MIMEApplication(open(f, 'rb').read())
    part.add_header('Content-Disposition', 'attachment', filename=f)
    msg.attach(part)

    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()
  • 被这里密码坑了好长时间,切记这里的密码不是登陆密码,而是授权码
  • QQ发邮件用25端口发送不成功,用搞定ssl的465
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件。 Python提供smtp...
    易百教程阅读 44,048评论 4 62
  • python发送邮件 准备 python中发送邮件主要用的是smtplib和email两个模块,下面主要对这两个模...
    爱撒谎的男孩阅读 503评论 0 2
  • 在搜索python教程的时候,碰巧遇到了“利用python发送电子邮件”的教程,觉得很实用也比较有意思,所以就花了...
    简讯Alfred阅读 4,276评论 4 27
  • 背景 公司内网有个论坛,各种公司的前沿消息都会有人在讨论。一忙起来,经常忘记逛论坛,所以写了个爬虫,爬取论坛前10...
    aialin阅读 947评论 0 11
  • 1. 上市公司的季报、年报(估股网, 新浪财经) 通过三张表可以看出很多行业的秘密,例如上下游的关系,话语权等,公...
    taociniren阅读 355评论 0 4