• 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_2s1hello.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"])
    

      

  • 相关阅读:
    c#读取XML
    Javascript 自动计算生日
    Thread.currentThread()与setDaeMon(boolean c)方法
    StringBuffer类的delete()方法和deleteCharAt()方法
    getStackTrace()方法使用
    JDBC详解
    eclipse与idea路径不匹配
    Idea导入maven项目不自动识别pom.xml
    IDEA找不到或无法加载主类
    MySQL:主从复制与处从复制同步延迟
  • 原文地址:https://www.cnblogs.com/Tempted/p/7397172.html
Copyright © 2020-2023  润新知