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