精华内容
下载资源
问答
  • 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()

    展开全文
  • 该源码是针对特定网站,不是通用代码,但是具有一定的参考性,不想下载可以看我博客有相应的每个部分的代码块 http://blog.csdn.net/henni_719/article/details/60580815
  • 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) 
     

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

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

    展开全文
  • 使用python3自带的库实现邮件发送,包括主题、附件等,可直接使用
  • 主要介绍了python selenium实现发送带附件邮件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了python 实现的发送邮件模板,包含Python发送普通邮件、带附件及带图片邮件相关实现技巧,需要的朋友可以参考下
  • email_file.add_header('Content-Disposition', 'attachment', filename='temp.html')#这里添加一个标题,Content-Disposition,attachment说明是一个附件,filename说明文件名.mail里有一个get_filename()的方法...
    from email.header import Header
    from email.mime.application import MIMEApplication
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from smtplib import SMTP_SSL
    import time

    email_sender=''#这里是qq邮箱
    email_pwd=''#这里是授权码,不知道qq邮箱怎么获取授权码的同事可以百度一下
    email_receiver='3270740288@qq.com'

    email_sever=SMTP_SSL('smtp.qq.com')#连接qq邮箱服务器
    email_sever.login(email_sender,email_pwd)#登录邮箱

    email_text=MIMEText('来自小陆的问候','plain','utf-8')#邮件的内容,和内容的格式。这里是txt/plain,纯文本类型。

    email_liction=MIMEMultipart()#创建一个带附件的事例
    email_liction['Subject']=Header('漫漫长路','utf-8')#标题的内容和编码格式
    email_liction['From']=email_sender
    email_liction['To']=email_receiver
    email_liction['Date']=time.ctime()


    email_file=MIMEApplication(open('F:\\temp.html', 'rb').read())#第一个参数打开文件read()方法读出所有内容,刚好是字符串格式,第二个参数是希望的编码,这种方法比较简单
    email_file.add_header('Content-Disposition', 'attachment', filename='temp.html')#这里添加一个标题,Content-Disposition,attachment说明是一个附件,filename说明文件名.mail里有一个get_filename()的方法可以得到附件里的文件名。
    #filename不能随便命名,因为后缀名会影响到文本的格式。例如把"html"换成"txt",最后加载到QQ邮件的附件就是‘temp.txt’。
    email_liction.attach(email_text)#把我们刚才写的邮件内容加进去
    email_liction.attach(email_file)#现在我们把编码好的附件也加进去

    email_sever.sendmail(email_sender,email_receiver,email_liction.as_string())#由于senemail要传String类型,所以要用.as_string()把内容组合成字符串
    email_sever.quit()

    转载于:https://www.cnblogs.com/lystbc/p/7517953.html

    展开全文
  • 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()
    展开全文
  • 我作为一个入门的数据分析师,需要学习很多基本功,现转载这篇博文,在此...而且大部分报表都是重复性的工作,这篇文章就是帮助大家如何用Python来实现报表的自动发送,解放你的劳动力,可以让你有时间去做更有意...
  • Python实现邮件附件发送

    千次阅读 2020-07-31 16:18:58
    感觉在项目中有蛮多地方可以用到邮件自动发送,于是去学了一下python怎样自动发送邮件。 0X01 准备 想要发送邮件的话得开通自己邮箱的 SMTP 功能,以QQ邮箱为例,进入上方的设置。 选择账户 打开SMTP服务,然后会...
  • Python自动发送邮件添加附件的源代码,真特定网站,比较具有参考价值
  • 这是python发送邮件的源码,支持群发和添加邮件, 文章中有免费下载地址,这里是土豪专用下载地址,
  • 主要为大家详细介绍了python smtplib发送带附件邮件小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 添加邮件附件 3。将Excel附件添加到正文中""" to_addr表示群发集,使用形如('abc.163.com,add.163.com,3243@qq.com') html表示要展示在正文中的网页或者表格等。 password字段表示邮箱的验证码,在打开smtp协议...
  • 发送邮件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 发送邮件附件

    千次阅读 2018-09-29 16:48:42
    用授权码登录发送邮件附件 需要对邮件进行POP3/SMTP服务设置,例如qq邮箱: 特别提示- ---&gt; 千万不要泄漏自己的授权码  这里的邮箱的域名与端口根据自己的实际邮箱去填写(这是qq邮箱) ...
  • #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: 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好用、好玩的库真的超多,今天正好看了smtplib的邮件库,废话不多说,翠花,上酸菜。 前言:先要自行百度一下,邮箱授权码的开启步骤,使用第三方服务登录时候需要使用邮箱授权码。 # -*- coding: utf-8 -...
  •           构造邮件内容(发件人、收件人、主题、正文、附件等) (2)email 模块下有 mime 包,mime 包下常用的有三个模块:(text、image、multipart)     ① MIMETex:(纯文本、HTML页面),参数...
  • python发送邮件(带附件

    千次阅读 2018-01-09 17:48:30
    # 添加附件就是加上一个MIMEBase,从本地读取一个图片: with open( '''D:\\py\\www\\img\\android-icon.png''' , 'rb' ) as f: # 设置附件的MIME和文件名,这里是png类型: mime = MIMEBase( 'image' , '...
  • Python 发送带附件邮件 发出去的附件格式就成bin

    千次阅读 多人点赞 2019-10-16 11:50:48
    导语:学习到使用Python发送带附件邮件,但收件人收到的附件格式是bin,附件名称也不是filename写的名称。 1、效果如下: 2、解决办法:将 att1['Content-Disposition'] = 'attachment;filename = "星测试附件....
  • python发送邮件并附带.zip附件

    千次阅读 2020-04-14 21:10:01
    利用python自带的zipfile库,具体思路是通过os.walk()函数遍历某一文件夹的所有文件,再把这些文件写入到压缩包内。 step1:利用zipfile库的ZipFile函数创建一个压缩包(.zip类型)的对象 step...
  • 简单的邮件发送功能,可设置定时器,用BlockingScheduler模块,定时发送 from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication import smtplib from email.mime....
  • python发送邮件带多个附件代码

    千次阅读 2018-11-19 11:17:24
    python发送邮件带多个附件代码 import smtplib,os from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders # 收...
  • python邮件详解,smtplib和email模块详解

    万次阅读 多人点赞 2018-09-06 18:20:56
    在介绍具体的实现python邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python邮件的实现原理。SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它...
  • 自动发送邮件可以将常规化得需求自动化,解放双手做更多有意义的事情
  • python 发送邮件添加附件、读取邮箱邮件完整脚本。有问题,请添加博主,留言
  • python发送带有附件的163邮件

    千次阅读 2018-12-04 18:07:01
    在开发私人公众号,根据开发公众号的初衷,需要实现python脚本下发送带有附件的163邮件,实现Kindle电子书的自动化推送。 参考 # below original code comes from the link:...

空空如也

空空如也

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

python邮件添加附件

python 订阅