Python3 发送QQ邮箱(含附件)
准备工作:
- 1.用到的python包:smtplib和email
- 2.获取qq邮箱授权码:在qq邮箱的设置里面的账户下面,开启POP3/SMTP服务和IMAP/SMTP服务后,点击生成授权码,按照提示操作完后得到授权码(记得保存好)。
-
完整代码如下:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def sendEmail(msg_from, passwd, subject, msg_to, content, file_path='', file_name=''):
# 创建一个带附件的实例
message = MIMEMultipart()
message['Subject'] = subject
message['From'] = msg_from
message['To'] = msg_to
# 邮件正文内容
message.attach(MIMEText(content, 'plain', 'utf-8'))
if file_path != '':
# 构造附件
att = MIMEText(open(file_path, 'rb').read(), 'base64', 'gb2312')
att["Content-Type"] = 'application/octet-stream'
att.add_header("Content-Disposition", 'attachment', filename=file_name)
message.attach(att)
server = smtplib.SMTP_SSL('smtp.qq.com', 465)
server.login(msg_from, passwd)
try:
server.sendmail(msg_from, msg_to, message.as_string())
server.close()
print('发送成功!')
except:
print('发送失败')
if __name__ == '__main__':
msg_from = 'xxxxxx@qq.com' # 你的邮箱地址
passwd = 'xxxxxxxxxxxx' # 你邮箱的授权码
subject = 'xxxx主题' # 邮件主题
msg_to = 'xxxxxxx@xxx' # 收件邮箱地址
content = 'xxxxx内容' # 邮件正文
# 没有附件可以省略不写
file_path = r'C:\Users\xxx\Desktop\test.txt' # 添加附件的路径
file_name = 'test.txt' # 添加附件的名字
# 1.发送带附件的qq邮件
sendEmail(msg_from,passwd,subject,msg_to,content,file_path,file_name)
#2.发送不带附件的qq邮件
sendEmail(msg_from, passwd, subject, msg_to, content)
根据注释提示改成相应的内容即可~