zoukankan      html  css  js  c++  java
  • Python发送邮件

    发送文本格式邮件,默认使用25端口

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    smtp_srv = 'mail.xx.com'
    from_addr = 'ld@xx.com'
    #to_addr = ('l1@xx.com','ld@xx.com')
    to_addr = ('l1@xx.com')
    cc_addr = 'l1@xx.com'
    password = 'mypass'
    subject = 'pp test'
    msg_content = '你好
    错误记录
    asdfl
    asdf'
    
    msg = MIMEText(msg_content,'plain','utf-8')
    msg['Subject'] = Header(subject, 'utf-8')
    msg['from_addr'] = from_addr
    msg['Cc'] = cc_addr
    msg['To'] = ''.join(to_addr)
    
    smtp = smtplib.SMTP()
    smtp.connect(smtp_srv)
    smtp.login(from_addr,password)
    #smtp.set_debuglevel(1) #显示邮件发送的详细信息
    smtp.sendmail(from_addr,to_addr,msg.as_string())
    smtp.quit()

    587端口发送邮件:

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    smtp_srv = '10.160.31.32'
    from_addr = 'sysuser@xin.com'
    login_addr = 'sysuser' 
    to_addr = ('lll@xin.com')
    password = 'pass'
    subject = 'pytest5872222teaea'
    msg_content = 'tt'
    
    msg = MIMEText(msg_content,'plain','utf-8')
    msg['Subject'] = Header(subject, 'utf-8')
    msg['from_addr'] = from_addr
    msg['To'] = ''.join(to_addr)
    
    smtp = smtplib.SMTP()
    smtp.connect(smtp_srv,587) #
    smtp.starttls() #
    smtp.login(login_addr,password) #如果SMTP登录验证失败,则其名称去掉@xin.com域名部分
    smtp.set_debuglevel(1)
    smtp.sendmail(from_addr,to_addr,msg.as_string())
    smtp.quit()

     发送正文带有图片的邮件:

    import os,sys,datetime,time
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    from email.mime.multipart import MIMEMultipart
    from email.mime.image import MIMEImage 
    
    smtp_srv = 'mail.x.com'
    from_addr = 'ITS@x.com'
    to_addr = ['ly@x.com']
    cc_addr = 'IT@x.com'
    to_addr2 = ['IT@x.com'] #由于抄送不起作用,所以将邮件重新发送一次
    password = r'password'
    subject = 'Hello' 
    
    msg = MIMEMultipart('related')
    msg['Subject'] = 'test message' 
    
    msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img alt="" src="cid:image1" />good!','html','utf-8')
    msg.attach(msgText) 
    
    fp = open('D:\pyweb\uxin.jpg', 'rb')
    msgImage = MIMEImage(fp.read())
    fp.close() 
    
    #在正文里添加图片
    msgImage.add_header('Content-ID', 'image1')
    msg.attach(msgImage) 
    
    msg['from_addr'] = from_addr
    msg['To'] = ''.join(to_addr)
    # print msg_content
    smtp = smtplib.SMTP()
    smtp.connect(smtp_srv,587)
    smtp.starttls()
    smtp.login(from_addr,password)
    #smtp.set_debuglevel(1) #显示邮件发送的详细信息
    smtp.sendmail(from_addr,to_addr2,msg.as_string())
    smtp.quit()

     发邮件时显示发件人的中文名称:

    import smtplib
    from email import encoders
    from email.mime.text import MIMEText
    from email.header import Header
    from email.utils import parseaddr, formataddr
    
    smtp_srv = 'smtp.gmail.com'
    from_addr = 'u@gmail.com'
    to_addr = ('l@x.com')
    password = 'Y'
    subject = '您的帐号'
    msg_content = '您好,
    您的密码'
    
    msg = MIMEText(msg_content,'plain','utf-8')
    msg['Subject'] = Header(subject, 'utf-8')
    #msg['from_addr'] = from_addr
    msg['From'] = formataddr(["管理员", from_addr]) #显示发件人的中文名称
    msg['To'] = ''.join(to_addr)
    
    smtp = smtplib.SMTP()
    smtp.connect(smtp_srv,587) #
    smtp.ehlo()
    smtp.starttls() #
    
    login_addr = from_addr #.split('@')[0]
    
    try:
        smtp.login(login_addr,password)
        smtp.set_debuglevel(1)
        smtp.sendmail(from_addr,to_addr,msg.as_string())
        smtp.quit()
    except Exception,e:
        print e

    发送多个图片:

    # -*- coding: UTF-8 -*-
    import time,os,datetime,sys,smtplib,csv,glob
    
    from email import encoders
    from email.mime.text import MIMEText
    from email.header import Header
    from email.mime.multipart import MIMEMultipart
    from email.mime.image import MIMEImage 
    
    
    def sendmail(auser,buser,cuser):
        smtp_srv = 'mail.x.com'
        from_addr = '11@x.com'
        to_addr = ('%s@x.com' %(auser))
        password = 'y'
        subject = '报告'
        smtp = smtplib.SMTP()
        smtp.connect(smtp_srv,587) 
        
        msg = MIMEMultipart('related')
        msg['Subject'] = Header(subject, 'utf-8')
        
        msg_content = '<p>您好,<br>员工%s(%s)访问了网站! </p>'%(buser,cuser)
        mail_jpg = ''
        fnumber = len(glob.glob(pathname='E:\Python\imgs\i*.*')) #计算图片目录下图片数量
        for i in  range(fnumber):
            mail_jpg += '<img alt="" src="cid:image%d" /><br>' %(i+1)
        msg.attach(MIMEText(msg_content + mail_jpg, 'html', 'utf-8'))
    
        i=0
        for fpathe,dirs,fs in os.walk('E:\Python\imgs\i'):  #遍历图片所在目录
            for f in fs:
                i=i+1
                img_name = os.path.join(fpathe,f)
                with open(img_name, 'rb') as fp:
                    print(img_name)
                    img_data = fp.read()
                    msg_image = MIMEImage(img_data)
                    msg_image.add_header('Content-ID', '<image%d>' %(i))
                    msg.attach(msg_image)
    
    
        msg['Subject'] = Header(subject, 'utf-8')
        msg['from_addr'] = from_addr
        msg['To'] = ''.join(to_addr)
    
        
        login_addr = from_addr.split('@')[0]
        smtp.login(login_addr,password)
    
    
        smtp.set_debuglevel(1)
        smtp.sendmail(from_addr,to_addr,msg.as_string())
        smtp.quit()
    
    count=0
    with open("E:\Python\imgs\aa.csv") as flist:    
        flists = csv.reader(flist)
        for line in flists:
            user0 = line[0]
            user1 = line[1]
            user2 = line[2]
            count = count + 1
            #url = line[1]
            sendmail(user2,user0,user1)
            print(user0,user1,count)
          
            time.sleep(3)
  • 相关阅读:
    Linux设置系统时间并同步到硬件
    centos6.9安装mysql5.7.22并设置初始密码
    mysql修改数据库文件存储位置
    mysql1.7(mysql优化,mysql-mmm软件介绍,mysql高可用集群。)
    mysql1.6(主从同步,数据读写分离)
    Mysql1.5(binlog增量备份与恢复,innobackupex)
    Mysql1.4(用户授权,权限撤销;图形管理工具,数据备份-恢复)
    MYSQL1.3(存储引擎,数据导入导出,管理表记录)
    MYSQL1.2(字段管理,索引类型)
    mysql1.1(搭建,数据类型,基本使用)
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/5817874.html
Copyright © 2011-2022 走看看