精华内容
下载资源
问答
  • 该源码是针对特定网站,不是通用代码,但是具有一定的参考性,不想下载可以看我博客有相应的每个部分的代码块 http://blog.csdn.net/henni_719/article/details/60580815
  • 主要介绍了python 实现的发送邮件模板,包含Python发送普通邮件、带附件及带图片邮件相关实现技巧,需要的朋友可以参考下
  • 使用python3自带的库实现邮件发送,包括主题、附件等,可直接使用
  • python3自动发送邮件添加附件

    千次阅读 热门讨论 2019-09-25 00:50:29
    将本地报表文件以附件形式添加邮件发送 设置定时任务 代码 import pymysql import pandas as pd import smtplib from email.header import Header from email.mime.text import MIMEText from email.m...

    思路

    1. 从数据库读取报表数据
    2. 将报表数据以excel形式存到本地
    3. 将本地报表文件以附件形式添加到邮件发送
    4. 设置定时任务

    代码 

    import pymysql
    import pandas as pd
    import smtplib
    from email.header import Header
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    from email.mime.multipart import MIMEMultipart
    from email.mime.application import MIMEApplication 
    import datetime
    import schedule,time
    
    def create_report(host,port,user,passwd,db,sql,annex_path):
        '从数据库读取报表数据,以excel形式将报表存到本地'
        conn = pymysql.connect(host=host, port=port, user=user, passwd=passwd, db=db)# 连接mysql
        cursor = conn.cursor()#创建游标
        cursor.execute(sql)#执行sql语句
        result = cursor.fetchall()#获取执行结果    
        result=[list(x) for x in result]
        col_result = cursor.description  # 获取查询结果的字段描述
        columns=[x[0] for x in col_result]
        data=pd.DataFrame(result,columns=columns)
        data.to_excel(annex_path,index=False)
        cursor.close()#关闭游标
        conn.close()#关闭连接
    
    def send_email(file_name,annex_path):
        '#创建报表和发送邮件'  
        try:
            file_name_new=str(datetime.datetime.now().date())+file_name#根据当前日期拼接附件名称
            annex_path_new=annex_path+'/'+file_name_new  #拼接报表存储完整路径 
            create_report(host,port,user,passwd,db,sql,annex_path_new)#创建报表
            
            #传入邮件发送者、接受者、抄送者邮箱以及主题    
            message = MIMEMultipart()
            message['From'] = sender
            message['To'] = ','.join(receiver)
            message['Cc'] = ";".join(Cc_receiver)
            message['Subject'] = Header(str(datetime.datetime.now().date())+title, 'utf-8')
            
            #添加邮件内容
            text_content = MIMEText(content)
            message.attach(text_content)
            
            #添加附件    
            annex = MIMEApplication(open(annex_path_new, 'rb').read()) #打开附件
            annex.add_header('Content-Disposition', 'attachment', filename=file_name_new)   
            message.attach(annex)
    
            #image_path = 'C:/Users/yang/Desktop/1.png'
            #image = MIMEImage(open(image_path , 'rb').read(), imageFile.split('.')[-1])
            #image.add_header('Content-Disposition', 'attachment', filename=image_path.split('/')[-1])
            #message.attach(image)
            
            #登入邮箱发送报表
            server = smtplib.SMTP(smtp_ip)#端口默认是25,所以不用指定
            server.login(sender,password)
            server.sendmail(sender, receiver, message.as_string())
            server.quit()
            print('success!',datetime.datetime.now())
            
        except smtplib.SMTPException as e:
            print('error:',e,datetime.datetime.now()) #打印错误
                
    if __name__ == '__main__':
    #参数设置
        #数据库参数设置
        host='localhost'#数据库ip地址
        port=3306#端口
        user='root'#账户
        passwd='XXX'#密码
        db='XXX'#数据库名称
        sql="SELECT cid,max(score) as max_score FROM sc group by cid;"#报表查询语句
        
        #发送邮件参数设置   
        sender = 'XXX@126.com'#发送者邮箱
        password = 'XXX'#发送者邮箱授权码
        smtp_ip='smtp.126.com'#smtp服务器ip,根据发送者邮箱而定
        receiver = ['XXX@qq.com','XXX@qq.com']#接收者邮箱 
        Cc_receiver=['XXX@qq.com','XXX@126.com']#抄送者邮箱
        title='订单日报'#邮件主题
        content = 'hello,这是今天的订单日报!'#邮件内容
        file_name='订单日报.xlsx'#报表名称
        annex_path='C:/Users/yang/Desktop/'#报表存储路径,也是附件路径
        ts='10:13'#发送邮件的定时设置,每天ts时刻运行
        
    #自动创建报表并发送邮件
        print('邮件定时发送任务启动中.......')
        schedule.every().day.at(ts).do(send_email, file_name,annex_path) # 每天某时刻运行   
        while True:
            schedule.run_pending() # 运行所有可运行的任务
            time.sleep(43200)#因为每次发送邮件的间隔时间是一天左右,所以休眠时间可以设长些

    结果 

     

    授权码的获取

    其中邮箱的授权码不是邮箱的密码,而是邮箱授权给第三方软件登陆邮箱的授权。以QQ邮箱为例,获取授权码步骤如下:

    (1)登陆邮箱,点开设置:

    (2)选择账户,找到开启SMTP,点击开启:

     

    (3)点击开启后,需要本人身份验证:

    (4)验证成功后,会出现授权码:

    这个授权码,就是要在连接邮件的时候填上。

     附:常用SMTP和POP服务器地址

       1、QQ邮箱(mail.qq.com)
        POP3服务器地址:pop.qq.com(端口:110)
        SMTP服务器地址:smtp.qq.com(端口:25)
        
        2、搜狐邮箱(sohu.com):
        POP3服务器地址:pop3.sohu.com(端口:110)
        SMTP服务器地址:smtp.sohu.com(端口:25)
        
        3、HotMail邮箱(hotmail.com):
        POP3服务器地址:pop.live.com(端口:995)
        SMTP服务器地址:smtp.live.com(端口:587)
        
        4、移动139邮箱:
        POP3服务器地址:POP.139.com(端口:110)
        SMTP服务器地址:SMTP.139.com(端口:25)
        
        5、景安网络邮箱:
        POP3服务器地址:POP.zzidc.com(端口:110)
        SMTP服务器地址:SMTP.zzidc.com(端口:25)
        
        6、新浪邮箱
        smtp.sina.com(端口:25)
        
        7、新浪VIP
        SMTP服务器地址:smtp.vip.sina.com(端口:25)
        
        8、126邮箱
        SMTP服务器地址:smtp.126.com(端口:25)
        
        9、139邮箱
        SMTP服务器地址:smtp.139.com(端口:25)
        
        10、163网易邮箱
        SMTP服务器地址:smtp.163.com(端口:25) 
     

    如果对你有帮助,请点下赞,予人玫瑰手有余香!

    时时仰望天空,理想就会离现实越来越近!

    展开全文
  • 主要介绍了python selenium实现发送附件邮件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Python实现SMTP发送邮件(四)-添加附件 [Python]纯文本查看复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 ...

    Python实现SMTP发送邮件(四)-添加附件

     

    [Python]  纯文本查看  复制代码
    ?
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.header import Header
     
    # 配置邮箱服务器
    smtpserver = "smtp.163.com"
     
    # 用户/密码
    user = "admin@163.com"
    password = "123456"
     
    # 发送者邮箱
    sender = "admin@163.com"
     
    # 接收者邮箱
    receiver = [ "123456@163.com" , "234567@qq.com" ]
     
    # 邮件主题
    subject = "Python-email3"
     
    msg = MIMEMultipart()
    # 多人接收邮件,直接显示下面账号的名字
    msg[ 'From' ] = "admin@163.com"
    msg[ 'To' ] = "123456@163.com"
    msg[ "cc" ] = "234567@qq.com"
    msg[ "Subject" ] = Header(subject, "utf-8" )
    # 添加正文
    msg.attach(MIMEText( '<html><h1>你好!</h1></html>' , "html" , "utf-8" ))
     
    # 添加附件
    sendFile = open ( "./测试报告.html" , 'rb' ).read()
    att = MIMEText(sendFile, "base64" , "utf-8" )
    att.add_header( "Content-Type" , "application/octet-stream" )
    att.add_header( "Content-Disposition" , "attachment" , filename = "测试报告.html" )
    msg.attach(att)
     
    if __name__ = = '__main__' :
         smtp = smtplib.SMTP()
         smtp.connect(smtpserver, 25 )
         smtp.login(user, password)
         smtp.sendmail(sender, receiver, msg.as_string())
         smtp.quit()
    展开全文
  • #coding=utf8 from Lib.AutoSendMail import AutoMail from Lib.XQL import ...<SavePath>E:\PythonDemo\XQLSendMail\Report 完整项目源码下载链接: http://download.csdn.net/download/henni_719/9771946
    #coding=utf8
    from Lib.AutoSendMail import  AutoMail
    from Lib.XQL import  RunXQL
    from Lib.mangerResultFile import  FileManger
    def Run():
        fm= FileManger()
        fm.clearResultCSV()
        sender=raw_input("发送人:")
        reciver=raw_input("接收人:")
        smtpServer=raw_input("发送邮件服务(如:mail.ximalaya.com',smtp.163.c0m):")
        password=raw_input("密码:")
        ject=raw_input("邮件名:")
        sendfile=fm.getLastFileWithPath()
        RunXQL()
        fm.moveCSVToSave()
        AutoMail(sender,reciver,smtpServer,password,ject,sendfile)
        
    if  __name__=="__main__":
        Run()

    之前该项目的整体组织结构如下:不懂的可以私信我,这代码不是通用的,是为了减轻工作量,忙里偷懒。感兴趣可以操作下:


    config.xml:

    #download path
    <Download>C:\Users\e.wang\Downloads</Download>
    
    #save data file path
    <SavePath>E:\PythonDemo\XQLSendMail\Report</SavePath>

    完整项目源码下载链接:http://download.csdn.net/download/henni_719/9771946

    展开全文
  • How do i add a document attachment when sending an email with python ?i get the email to send(please ignore: i am looping the email to send every 5 seconds, only for testing purposes, i want it to sen...

    1586010002-jmsa.png

    How do i add a document attachment when sending an email with python ?

    i get the email to send

    (please ignore: i am looping the email to send every 5 seconds, only for testing purposes, i want it to send every 30 min, just have to change 5 to 1800)

    here is my code so far. how do i attach a document from my computer?

    #!/usr/bin/python

    import time

    import smtplib

    while True:

    TO = 'xxxx@gmail.com'

    SUBJECT = 'Python Email'

    TEXT = 'Here is the message'

    gmail_sender = 'xxxx@gmail.com'

    gmail_passwd = 'xxxx'

    server = smtplib.SMTP('smtp.gmail.com',587)

    server.ehlo()

    server.starttls()

    server.ehlo()

    server.login(gmail_sender, gmail_passwd)

    BODY = '\n'.join([

    'To: %s' % TO,

    'From: %s' % gmail_sender,

    'Subject:%s' % SUBJECT,

    '',

    TEXT

    ])

    try:

    server.sendmail(gmail_sender,[TO], BODY)

    print 'email sent'

    except:

    print 'error sending mail'

    time.sleep(5)

    server.quit()

    解决方案

    This is the code that worked for me- to send an email with an attachment in python

    #!/usr/bin/python

    import smtplib,ssl

    from email.mime.multipart import MIMEMultipart

    from email.mime.base import MIMEBase

    from email.mime.text import MIMEText

    from email.utils import formatdate

    from email import encoders

    def send_mail(send_from,send_to,subject,text,files,server,port,username='',password='',isTls=True):

    msg = MIMEMultipart()

    msg['From'] = send_from

    msg['To'] = send_to

    msg['Date'] = formatdate(localtime = True)

    msg['Subject'] = subject

    msg.attach(MIMEText(text))

    part = MIMEBase('application', "octet-stream")

    part.set_payload(open("WorkBook3.xlsx", "rb").read())

    encoders.encode_base64(part)

    part.add_header('Content-Disposition', 'attachment; filename="WorkBook3.xlsx"')

    msg.attach(part)

    #context = ssl.SSLContext(ssl.PROTOCOL_SSLv3)

    #SSL connection only working on Python 3+

    smtp = smtplib.SMTP(server, port)

    if isTls:

    smtp.starttls()

    smtp.login(username,password)

    smtp.sendmail(send_from, send_to, msg.as_string())

    smtp.quit()

    展开全文
  • 主要为大家详细介绍了python smtplib发送附件邮件小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 发送邮件2.1 导入email/smtplib相关模块2.2 email模块2.2.1 邮箱设置2.2.2 添加正文2.2.3 添加图片文件2.2.4 添加doc文件2.2.5 添加pdf文件2.2.6 添加表格文件2.3 smtplib模块3. 定时任务3.1 schedule库3.2 定时...
  • python使用outlook发送附件邮件
  • Python自动发送邮件添加附件的源代码,真特定网站,比较具有参考价值
  • -- coding: utf-8 -- @Time : 2020/12/29 14:01 @Author : Sarah Qiu ...file_path = r"D:\Projects\TestData%s.txt" % i # 获取邮件附件 class send_email(): def outlook(self): olook = win32.Dispatch(
  • Python实现邮件附件发送

    千次阅读 2020-07-31 16:18:58
    感觉在项目中有蛮多地方可以用到邮件自动发送,于是去学了一下python怎样自动发送邮件。 0X01 准备 想要发送邮件的话得开通自己邮箱的 SMTP 功能,以QQ邮箱为例,进入上方的设置。 选择账户 打开SMTP服务,然后会...
  • 这是python发送邮件的源码,支持群发和添加邮件, 文章中有免费下载地址,这里是土豪专用下载地址,
  • email_file.add_header('Content-Disposition', 'attachment', filename='temp.html')#这里添加一个标题,Content-Disposition,attachment说明是一个附件,filename说明文件名.mail里有一个get_filename()的方法...
  • 简单邮件发送 # coding=utf-8 import smtplib from email.mime.text import MIMEText # 配置邮箱信息 sender = 'xxxxxx@qq.com' # 件人的地址 password = 'xxxxxxxxx' # 此处是我们刚刚在邮箱中获取的授权码 ...
  • 自动发送邮件可以将常规化得需求自动化,解放双手做更多有意义的事情
  • SERVER, smtp_port=SMTP_PORT, sender=SENDER, account_info=ACCOUNT_INFO): """ :param receivers:接收邮箱列表 :param subject:发送邮件主题 :param text:发送邮件正文 :param filename:发送邮件附件 :param smtp_...
  • 简单的邮件发送功能,可设置定时器,用BlockingScheduler模块,定时发送 from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication import smtplib from email.mime....
  • mark一下python3自动发送附件邮件的代码 # 导入smtplib模块,用于发送邮件 import smtplib #带多个部分的邮件 from email.mime.multipart import MIMEMultipart # MIMEText用于在邮件内的放置文本内容 from ...
  • 我的报告目录 具体解释在代码中有详细注释 import win32com.client as win32 import datetime, os addressee = 'test01@qq.com'+';'+'test02@jd.com'#收...'+'test03@alibaba.com'#抄送人邮件列表 mail_path ...
  • 利用python自动发送附件邮件

    千次阅读 2018-10-31 23:23:23
    利用python自动发送邮件 说道邮件,必须要了解相关的协议。 简单地说,SMTP管‘’,POP3/IMAP管‘收’。 POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会...
  • 1.设置发送邮件邮箱的SMTP服务 https://www.360kuai.com/pc/927b9f8da3555bb70?cota=4&kuai_so=1&tj_url=xz&sign=360_57c3bbd1&refer_scene=so_1 设置步骤时,记住设置的邮箱的独立密码,在以下...
  • 腾讯企业邮箱自动发送邮件时,先在客户端,开启SMTP服务,并且设置独立密码作为STMP登录密码。 ...邮箱绑定–>...自动发邮件,实例讲解 from email.header import Header from email.mime.multipar.
  • python 发送邮件附件

    千次阅读 2018-09-29 16:48:42
    用授权码登录发送邮件附件 需要对邮件进行POP3/SMTP服务设置,例如qq邮箱: 特别提示- ---&gt; 千万不要泄漏自己的授权码  这里的邮箱的域名与端口根据自己的实际邮箱去填写(这是qq邮箱) ...
  • python发送邮件并附带.zip附件

    千次阅读 2020-04-14 21:10:01
    利用python自带的zipfile库,具体思路是通过os.walk()函数遍历某一文件夹的所有文件,再把这些文件写入到压缩包内。 step1:利用zipfile库的ZipFile函数创建一个压缩包(.zip类型)的对象 step...
  • Python 发送附件邮件 出去的附件格式就成bin

    千次阅读 多人点赞 2019-10-16 11:50:48
    导语:学习到使用Python发送附件邮件,但收件人收到的附件格式是bin,附件名称也不是filename写的名称。 1、效果如下: 2、解决办法:将 att1['Content-Disposition'] = 'attachment;filename = "星测试附件....
  • python smtp发送邮件 from email.header import Header from email.mime.text import MIMEText from smtplib import SMTP def send_email(receivers, topic, msg, sender='xx@qq.com'): &amp;amp;amp;quot;&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,571
精华内容 1,828
关键字:

python添加附件发送邮件

python 订阅