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"])

  

posted @ 2017-08-19 16:54  执酒  阅读(1439)  评论(0编辑  收藏  举报