Python发送邮件,含附件

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39091609/article/details/79336562

发送邮件时可以用smtp协议把邮件传到邮件服务器上,然后服务器再把邮件发送出去,我们可以采用QQ邮箱的服务器(smtp.qq.com),下面介绍用python自带的smtplib来实现借助qq邮箱发送邮件的功能。

首先在QQ邮箱的设置里面开启pop3/smtp服务,pop3用来从邮件服务器里下载接收邮件,smtp用来向服务器上传发送邮件。找到设置->账户这一栏


然后向下拉,找到smtp服务并开启


之后会出现一个授权码,这个授权码就是登录的密码,截屏或者复制下来保存好

剩下的就是编写程序

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from os.path import basename

def sendMail(user, pwd, sendTo):
    msg = MIMEMultipart()
    #设置邮件主题、发送者、接受者
    msg['Subject'] = "Python mail test"
    msg['From'] = user
    msg['To'] = sendTo
    #输入邮件的文本内容
    tmp = input("input text content: ")
    text = MIMEText(tmp)
    msg.attach(text)
    #添加附件
    fd = input("input attachment file path:")
    jpgpart = MIMEApplication(open(fd, 'rb').read())
    #标示位置为附件,设置附件的文件名
    jpgpart.add_header("Content-Disposition", "attachment", filename=basename(fd))
    msg.attach(jpgpart)

    #以上是写信步骤,下面为发送
    #连接smtp服务器
    s = smtplib.SMTP_SSL("smtp.qq.com", 465)
    #登录,user是自己的qq邮箱,pwd是刚刚腾讯给你的授权码
    s.login(user, pwd)
    #sendTo指示接收方邮箱
    s.sendmail(user, sendTo, msg.as_string())
    s.close()
    print("success")
    return True

if __name__ == '__main__':
    #三个参数依次是自己的邮箱,授权码,接收方邮箱
    sendMail('xxxxxx@qq.com', 'your_password', 'xxxxxx@qq.com')



展开阅读全文

没有更多推荐了,返回首页