"""
@Time : 2018/5/31
@Author : LXW
@Site :
@File : sendEmail.py
@Software: PyCharm
@Description: 使用SMTP协议发送邮件,支持同时发送给多个地址,支持同时发送文本信息、超文本信息和多附件
"""
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
import os
class properties():
mail_host = "smtp.qq.com"
mail_user = "@qq.com"
mail_pass = ""
mail_port = 465
sender = "@vip.qq.com"
receivers = "@qq.com","@qq.com"
messageText = "测试使用\n"
messageHTML = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<img src="http://a.hiphotos.baidu.com/image/pic/item/730e0cf3d7ca7bcb6a172486b2096b63f624a82f.jpg" alt="test" width="200px" height="200px">
</body>
</html>
"""
messageFromHeader = ""
messageToHeader = "test python"
messageSubject = "ceshiceshi123"
filePaths = '1.txt','2.txt','3.txt'
def sendMail():
"""
:param mail_host: 设置服务器,"smtp.xx.com"
:param mail_user: 用户名
:param mail_pass: 口令
:param sender: 发送邮件的地址
:param receivers: 接收邮件,可设置为你的QQ邮箱或者其他邮箱
:param messageText: 邮件发送的文本内容
:param messageHTML: 邮件发送的超文本内容
:param messageFromHeader: 发送邮件方的别名展示(类似昵称)
:param messageToHeader: 接收邮件方的展示信息
:param messageSubject: 邮件主题
:param filePath: 附件详细地址
:return:
"""
mail_host = properties.mail_host
mail_user = properties.mail_user
mail_pass = properties.mail_pass
mail_port = properties.mail_port
sender = properties.sender
receivers = properties.receivers
messageText = properties.messageText
messageHTML = properties.messageHTML
messageFromHeader = properties.messageFromHeader
if messageFromHeader == "":
messageFromHeader = sender
messageToHeader = properties.messageToHeader
messageSubject = properties.messageSubject
filePaths = properties.filePaths
message = MIMEMultipart('mixed')
message['From'] = Header(messageFromHeader, 'utf-8')
message['To'] = Header(messageToHeader, 'utf-8')
message['Subject'] = Header(messageSubject, 'utf-8')
try:
for filePath in filePaths:
messageFile = open(filePath, 'rb').read()
message_file = MIMEText(messageFile, 'base64', 'utf-8')
message["Content-Type"] = 'application/octet-stream'
message_file.add_header('Content-Disposition', 'attachment', filename=os.path.basename(filePath))
message.attach(message_file)
except Exception as e:
print "附件发送失败:" + str(e)
message_text = MIMEText(messageText, 'html', 'utf-8')
message.attach(message_text)
message_html = MIMEText(messageHTML, 'html', 'utf-8')
message.attach(message_html)
try:
smtpObj = smtplib.SMTP_SSL()
smtpObj.connect(mail_host, mail_port)
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender,receivers,message.as_string())
print "邮件发送成功"
except Exception as e:
print("邮件发送失败,错误信息:" + str(e))
if __name__ == '__main__':
sendMail()