import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header mail_host = "smtp.163.com" # 设置服务器 mail_user = "17731456887@163.com" # 用户名 mail_pass = "python123" # 口令 sender = '17731456887@163.com' receivers = ['1758152342@qq.com','17731456887@163.com'] # 创建一个带附件的实例 message = MIMEMultipart() message['From'] = '17731456887@163.com' message['To'] = '1758152342@qq.com' subject = 'Python SMTP 邮件' message['Subject'] = Header(subject, 'utf-8') # 邮件正文内容 message.attach(MIMEText('这是菜鸟教程Python 邮件发送……', 'plain', 'utf-8')) # 构造附件1,传送当前目录下的 test.txt 文件 att1 = MIMEText(open(r'safe.doc', 'rb').read(), 'base64', 'utf-8') att1["Content-Type"] = 'application/octet-stream' # 这里的filename可以任意写,写什么名字,邮件中显示什么名字 att1["Content-Disposition"] = 'attachment; filename="{0}"'.format('safe.doc') message.attach(att1) # # 构造附件2,传送当前目录下的 runoob.txt 文件 # att2 = MIMEText(open('runoob.txt', 'rb').read(), 'base64', 'utf-8') # att2["Content-Type"] = 'application/octet-stream' # att2["Content-Disposition"] = 'attachment; filename="runoob.txt"' # message.attach(att2) try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号 smtpObj.login(mail_user,mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print "邮件发送成功" except smtplib.SMTPException: print "Error: 无法发送邮件"