python 发送邮件

原文:http://blog.csdn.net/marksinoberg/article/details/51506308

要发送邮件前需要做准备工作

1.启动邮箱的smtp/pop协议;开启时系统会提示给我们一个邮箱客户端的授权码,作用就是我们登陆的时候替代原来的登陆密码

如果没有启动smtp/pop协议则会提示:smtplib.SMTPAuthenticationError: (535 Error:authentication failed)

如果不是使用的授权码登录则会提示:smtplib.SMTPAuthenticationError: (550, b'User has no permission')


dome:

# !/usr/bin/env python
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication


def email_file():
    # 获取邮箱服务器
    mail_host = 'smtp.qq.com'
    # 获取邮箱的登录邮箱
    mail_user = "xxxxxxxx@qq.com"
    # 邮箱授权码
    mail_pass = "xxxxxxx"
    # 接收邮箱,可设置为你的QQ邮箱或者其他邮箱格式为'xx.@qq.com,xx.@qq.com'
    receivers = 'xxxxxx@qq.com'
    # 构造多个部分
    message = MIMEMultipart()
    # 发件人(与登录邮箱一致)
    message['From'] = mail_user
    # 收件人
    message['To'] = receivers
    # 邮件主题
    message['Subject'] = Header('python测试邮件', 'utf-8')

    # 发送HTML格式的邮件
    # mail_msg = """
    #     <p>Python 邮件发送测试...</p>
    #     <p><a href="http://www.runoob.com">这是一个链接</a></p>
    # """
    # html_c = MIMEText(mail_msg, 'html', 'utf-8')
    # message.attach(html_c)

    # 邮件内容
    puretext = MIMEText('这是一个测试邮件', 'plain', 'utf-8')
    message.attach(puretext)
    # ------------------------附件-------------------------------------
    # 构造附件
    accessory = MIMEApplication(open('test_run.py', 'rb').read())
    accessory.add_header('Content-Disposition', 'attachment', filename='test_run.py')
    message.attach(accessory)
    # ---------------------------发送邮件-------------------------------------------------
    try:
        smtpObj = smtplib.SMTP_SSL()
        # 465为SMTP_SSL端口号
        smtpObj.connect(mail_host, 465)
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(mail_user, receivers, message.as_string())
        print "邮件发送成功"
    except Exception, e:
        print e


if __name__ == '__main__':
    email_file()



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值