zoukankan      html  css  js  c++  java
  • 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"])
    

      

  • 相关阅读:
    ARM装配说明MCR/MRC学习
    smark和openfire即时通信代码
    Bulk Insert具体订单
    Redis测井系统
    几种任务调度的 Java 实现方法与比较
    Android中Style和Theme的使用
    高仿优酷Android客户端图片左右滑动(自动切换)
    Android GridView 一行显示数据(包括图片和文本),解决的办法是计算数据占该行的宽度是多少
    为Android GridView 设置行背景
    Android利用Filter过滤数据
  • 原文地址:https://www.cnblogs.com/Tempted/p/7397172.html
Copyright © 2011-2022 走看看