python3 邮件,多用户,抄送
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/8/19 10:44
# @Author : Lys
# @Site :
# @File : mail.py
# @Software: PyCharm Community Edition
import sys
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
class Mailer(object):
def __init__(self, maillist,mailcclist, mailtitle, mailcontent):
self.mail_list = maillist
self.mail_cc = mailcclist
self.mail_title = mailtitle
self.mail_content = mailcontent
self.mail_host = "xxx.xxx.com" #邮件服务器地址
self.mail_user = "xxx@xxx.com" #USER
self.mail_pass = "xxxxx" #Password
#self.mail_postfix = "xxxxxx.com"
def sendMail(self):
me = self.mail_user + "<" + self.mail_user + "@" + ">"
msg = MIMEMultipart()
msg['Subject'] = 'Python mail Test'
msg['From'] = me
msg['To'] = ";".join(self.mail_list)
msg['Cc'] = ";".join(self.mail_cc)
#print("++++++++++++++",self.mail_cc)
# puretext = MIMEText('<h1>你好,<br/>'+self.mail_content+'</h1>','html','utf-8')
puretext = MIMEText('纯文本内容' + self.mail_content)
msg.attach(puretext)
#txt类型格式
txtpart = MIMEApplication(open("E:\day_2\s1\hello.txt",'rb').read())
txtpart.add_header('Content-Disposition', 'attachment', filename='hello.txt')
msg.attach(txtpart)
# jpg类型的附件
#jpgpart = MIMEApplication(open('/home/mypan/1949777163775279642.jpg', 'rb').read())
#jpgpart.add_header('Content-Disposition', 'attachment', filename='beauty.jpg')
#msg.attach(jpgpart)
# 首先是xlsx类型的附件
# xlsxpart = MIMEApplication(open('test.xlsx', 'rb').read())
# xlsxpart.add_header('Content-Disposition', 'attachment', filename='test.xlsx')
# msg.attach(xlsxpart)
# mp3类型的附件
# mp3part = MIMEApplication(open('kenny.mp3', 'rb').read())
# mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3')
# msg.attach(mp3part)
# pdf类型附件
# part = MIMEApplication(open('foo.pdf', 'rb').read())
# part.add_header('Content-Disposition', 'attachment', filename="foo.pdf")
# msg.attach(part)
try:
s = smtplib.SMTP() # 创建邮件服务器对象
s.connect(self.mail_host) # 连接到指定的smtp服务器。参数分别表示smpt主机和端口
s.login(self.mail_user, self.mail_pass) # 登录到你邮箱
#print("-------",self.mail_list,self.mail_cc)
s.sendmail(me,self.mail_list + self.mail_cc,msg.as_string()) # 发送内容
s.close()
return True
except Exception as e:
print(str(e))
return False
def main(mailto_list,mailcc_list):
mailto_list = mailto_list
mailcc_list = mailcc_list
mail_title = 'Hey subject'
mail_content = 'Hey this is content'
mm = Mailer(mailto_list, mailcc_list, mail_title, mail_content)
res = mm.sendMail()
print(res)
#将消息类型转换为list
def processMsg(people_list):
mail_list = []
while True:
try:
get_mail_index = str(people_list).index(',')
get_first = (people_list[:get_mail_index])
mail_list.append(get_first)
people_list = people_list[get_mail_index+1:]
except ValueError:
mail_list.append(people_list)
break
return mail_list
if __name__ == '__main__':
send_list = sys.argv[1]
cc_list = sys.argv[2]
mailto_list = []
mailcc_list = []
mailto_list = processMsg(send_list)
mailcc_list = processMsg(cc_list)
main(mailto_list,mailcc_list)
#main(["xxx@xxx.com","xxx@xxx.com"], ['xxxx@qq.com',"xxx@xxx.com"])