Python发送邮件,含附件

xiaoxiao2021-02-28  42

发送邮件时可以用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')

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-2631259.html

最新回复(0)