精华内容
下载资源
问答
  • python自动发送邮件

    2019-11-26 18:04:03
    每天日报的你是不是想找个机器人代替你做这些重复性无技术含量的工作,来试试python自动发送邮件吧!

    每天发日报的你是不是想找个机器人代替你做这些重复性无技术含量的工作,来试试python自动发送邮件吧

    import smtplib
    from email.header import Header
    from email.mime.text import MIMEText# 文本文件
    from email.mime.multipart import MIMEMultipart# html文件
    from email.mime.image import MIMEImage# image文件
    from email.mime.base import MIMEBase# 发送非文本数据
    from email.mime.application import MIMEApplication  #添加excel文件调用接口API
    from email import encoders
    
    def send_email(SMTP_host, from_account, from_password, to_account, subject, content,filepath):
        # 1.实例化
        smtp=smtplib.SMTP_SSL(SMTP_host,465)
    
        # 2.连接服务器
        smtp.connect(SMTP_host,465)
        # smtp.ehlo()
        #smtp.starttls()
    
        # 3.配置发送邮件的用户名和密码
        smtp.login(from_account,from_password)
    
        # 4.配置发送内容msg
        msg = MIMEMultipart() # 发送者
        msg.attach(MIMEText(content, 'plain', 'utf-8'))# 主体文件内容
        msg['Subject'] = Header(subject, 'utf-8')# 标题
        msg['From'] = from_account
        # msg['To'] = to_account# 发送多人时不好设置此参数
        # msg['From'] = formataddr(["张三", "920664709@163.com"])# 设置自定的用户名
        # msg['To'] = formataddr(["李四", "920664709@163.com"])# 设置自定的用户名
        '''
        添加xlsx文件
        '''
        xlsxpart= MIMEApplication(open(filepath, 'rb').read())
        basename = "测试.xlsx"
        xlsxpart.add_header('Content-Disposition', 'attachment', filename=('gbk', '', basename))
        #注意:此处basename要转换为gbk编码,否则中文会有乱码。 
        msg.attach(xlsxpart)
    
    
        '''
        添加文本文件
        '''
        # att1 = MIMEText(open(r'E:\代码\Python文件\课件中心\数据可视化\电子商务数据集.csv', 'rb').read(), 'base64', 'utf-8')
        # att1["Content-Type"] = 'application/octet-stream'
        # # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
        # att1["Content-Disposition"] = 'attachment; filename="test.csv"'
        # msg.attach(att1)
    
        '''
        添加html文件
        '''
        # att2 = MIMEText(open(r'E:\数据可视化\render.html', 'r' ,encoding='utf-8').read(), 'base64')
        # att2["Content-Type"] = 'application/octet-stream'
        # # 附件名称非中文时的写法
        # # att2["Content-Disposition"] = 'attachment; filename="Personas.html"'
        # # 附件名称为中文时的写法
        # att2.add_header("Content-Disposition", "attachment", filename=("gbk", "", "用户画像.html"))
        # msg.attach(att2)
    
        '''
        添加图片(不能修改文件名)
        '''
        # att3= MIMEImage(open("爱心.jpg",'rb').read())
        # att3.add_header('Content-ID', 'imageid')
        # msg.attach(att3)
    
        '''
        压缩文件
        '''
        att4=MIMEBase('application', 'octet-stream')
        # 加上必要的头信息:
        att4.add_header('Content-Disposition', 'attachment', filename=("gbk", "", '压缩包123.zip'))
        att4.add_header('Content-ID', '<0>')
        att4.add_header('X-Attachment-Id', '0')
        # 把附件的内容读进来:
        att4.set_payload(open("./压缩文件.zip",'rb').read())
        encoders.encode_base64(att4)
        msg.attach(att4)
    
        '''
        添加图片
        '''
    
        att5 = MIMEBase('application', 'octet-stream')
        # 加上必要的头信息:
        att5.add_header('Content-Disposition', 'attachment',filename=("gbk", "", '爱心.png'))
        att5.add_header('Content-ID', '<0>')
        att5.add_header('X-Attachment-Id', '0')
        # 把附件的内容读进来:
        att5.set_payload(open("./爱心.jpg", 'rb').read())
        encoders.encode_base64(att5)
        msg.attach(att5)
    
    
        # 5.配置发送邮箱,接收邮箱,以及发送内容
        smtp.sendmail(from_account, to_account, msg.as_string())
    
        # 6.关闭邮件服务
        smtp.quit()
    mail_host='smtp.qq.com'# 服务器地址
    sender='xxxxxxxxx@qq.com'# 发送用户
    password='xxxxxxxxxx'# 口令-smtp授权码,非登陆密码
    receivers=['xxxx@qq.com']# 接收用户可以1个或者多个
    subject="【请知晓】关于Python的邮件自动发送"#邮件主题
    filepath=r"d\test.xlsx"
    content="""Dear All:
    请查收2019年11月的自动化报表!
    """
    send_email(mail_host,sender,password,receivers, subject, content,filepath)
    # 主要参数:服务器地址  发送的邮箱  授权码  接收的邮箱  标题  主体内容
    
    展开全文
  • 主要为大家详细介绍了python自动发送邮件的脚本源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python自动发邮件

    2018-04-19 08:57:09
    转自:https://www.cnblogs.com/yufeihlf/p/5726619.htmlpython发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造...

    转自:https://www.cnblogs.com/yufeihlf/p/5726619.html

    python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。

    smtplib模块主要负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。

    email模块主要负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

     

    1.smtplib模块

    smtplib使用较为简单。以下是最基本的语法。

    导入及使用方法如下:

    复制代码
    import smtplib
    
    smtp = smtplib.SMTP() 
    smtp.connect('smtp.163.com,25') 
    smtp.login(username, password) 
    smtp.sendmail(sender, receiver, msg.as_string()) 
    smtp.quit()
    复制代码

    说明:

    smtplib.SMTP():实例化SMTP()

    connect(host,port):

    host:指定连接的邮箱服务器。常用邮箱的smtp服务器地址如下:

    新浪邮箱:smtp.sina.com,新浪VIP:smtp.vip.sina.com,搜狐邮箱:smtp.sohu.com,126邮箱:smtp.126.com,139邮箱:smtp.139.com,163网易邮箱:smtp.163.com。

    port:指定连接服务器的端口号,默认为25.

    login(user,password):

    user:登录邮箱的用户名。

    password:登录邮箱的密码,像笔者用的是网易邮箱,网易邮箱一般是网页版,需要用到客户端密码,需要在网页版的网易邮箱中设置授权码,该授权码即为客户端密码。

    sendmail(from_addr,to_addrs,msg,...):

    from_addr:邮件发送者地址

    to_addrs:邮件接收者地址。字符串列表['接收地址1','接收地址2','接收地址3',...]或'接收地址'

    msg:发送消息:邮件内容。一般是msg.as_string():as_string()是将msg(MIMEText对象或者MIMEMultipart对象)变为str。

    quit():用于结束SMTP会话。

     

    2.email模块

    email模块下有mime包,mime英文全称为“Multipurpose Internet Mail Extensions”,即多用途互联网邮件扩展,是目前互联网电子邮件普遍遵循的邮件技术规范。

    该mime包下常用的有三个模块:text,image,multpart

    导入方法如下:

    from email.mime.multipart import MIMEMultipart    
    from email.mime.text import MIMEText    
    from email.mime.image import MIMEImage

    构造一个邮件对象就是一个Message对象,如果构造一个MIMEText对象,就表示一个文本邮件对象,如果构造一个MIMEImage对象,就表示一个作为附件的图片,要把多个对象组合起来,就用MIMEMultipart对象,而MIMEBase可以表示任何对象。它们的继承关系如下:

    Message
    +- MIMEBase
       +- MIMEMultipart
       +- MIMENonMultipart
          +- MIMEMessage
          +- MIMEText
          +- MIMEImage

    2.1 text说明

    邮件发送程序为了防止有些邮件阅读软件不能显示处理HTML格式的数据,通常都会用两类型分别为"text/plain"和"text/html"

    构造MIMEText对象时,第一个参数是邮件正文,第二个参数是MIME的subtype,最后一定要用utf-8编码保证多语言兼容性。

    2.1.1添加普通文本

    text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.baidu.com"    
    text_plain = MIMEText(text,'plain', 'utf-8')    

    查看MIMEText属性:可以观察到MIMEText,MIMEImage和MIMEMultipart的属性都一样。

    print dir(text_plain)

    ['__contains__', '__delitem__', '__doc__', '__getitem__', '__init__', '__len__', '__module__', '__setitem__', '__str__', '_charset', '_default_type', '_get_params_preserve', '_headers', '_payload', '_unixfrom', 'add_header', 'as_string', 'attach', 'defects', 'del_param', 'epilogue', 'get', 'get_all', 'get_boundary', 'get_charset', 'get_charsets', 'get_content_charset', 'get_content_maintype', 'get_content_subtype', 'get_content_type', 'get_default_type', 'get_filename', 'get_param', 'get_params', 'get_payload', 'get_unixfrom', 'has_key', 'is_multipart', 'items', 'keys', 'preamble', 'replace_header', 'set_boundary', 'set_charset', 'set_default_type', 'set_param', 'set_payload', 'set_type', 'set_unixfrom', 'values', 'walk']

    2.1.2添加超文本

    复制代码
    html = """
    <html>  
      <body>  
        <p> 
           Here is the <a href="http://www.baidu.com">link</a> you wanted.
        </p> 
      </body>  
    </html>  
    """    
    text_html = MIMEText(html,'html', 'utf-8')  
    复制代码

    2.1.3添加附件

    sendfile=open(r'D:\pythontest\1111.txt','rb').read()
    text_att = MIMEText(sendfile, 'base64', 'utf-8')    
    text_att["Content-Type"] = 'application/octet-stream'    
    text_att["Content-Disposition"] = 'attachment; filename="显示的名字.txt"'  

     

    2.2 image说明

    添加图片:

    sendimagefile=open(r'D:\pythontest\testimage.png','rb').read()
    image = MIMEImage(sendimagefile)
    image.add_header('Content-ID','<image1>')

    查看MIMEImage属性:

    print dir(image)

    ['__contains__', '__delitem__', '__doc__', '__getitem__', '__init__', '__len__', '__module__', '__setitem__', '__str__', '_charset', '_default_type', '_get_params_preserve', '_headers', '_payload', '_unixfrom', 'add_header', 'as_string', 'attach', 'defects', 'del_param', 'epilogue', 'get', 'get_all', 'get_boundary', 'get_charset', 'get_charsets', 'get_content_charset', 'get_content_maintype', 'get_content_subtype', 'get_content_type', 'get_default_type', 'get_filename', 'get_param', 'get_params', 'get_payload', 'get_unixfrom', 'has_key', 'is_multipart', 'items', 'keys', 'preamble', 'replace_header', 'set_boundary', 'set_charset', 'set_default_type', 'set_param', 'set_payload', 'set_type', 'set_unixfrom', 'values', 'walk']

     

    2.3 multpart说明

    常见的multipart类型有三种:multipart/alternative, multipart/related和multipart/mixed。

    邮件类型为"multipart/alternative"的邮件包括纯文本正文(text/plain)和超文本正文(text/html)。

    邮件类型为"multipart/related"的邮件正文中包括图片,声音等内嵌资源。

    邮件类型为"multipart/mixed"的邮件包含附件。向上兼容,如果一个邮件有纯文本正文,超文本正文,内嵌资源,附件,则选择mixed类型。

    msg = MIMEMultipart('mixed')

    我们必须把Subject,From,To,Date添加到MIMEText对象或者MIMEMultipart对象中,邮件中才会显示主题,发件人,收件人,时间(若无时间,就默认一般为当前时间,该值一般不设置)。

    msg = MIMEMultipart('mixed') 
    msg['Subject'] = 'Python email test'
    msg['From'] = 'XXX@163.com <XXX@163.com>'
    msg['To'] = 'XXX@126.com'
    msg['Date']='2012-3-16'

    查看MIMEMultipart属性:

    msg = MIMEMultipart('mixed') 
    print dir(msg) 

    结果:

    ['__contains__', '__delitem__', '__doc__', '__getitem__', '__init__', '__len__', '__module__', '__setitem__', '__str__', '_charset', '_default_type', '_get_params_preserve', '_headers', '_payload', '_unixfrom', 'add_header', 'as_string', 'attach', 'defects', 'del_param', 'epilogue', 'get', 'get_all', 'get_boundary', 'get_charset', 'get_charsets', 'get_content_charset', 'get_content_maintype', 'get_content_subtype', 'get_content_type', 'get_default_type', 'get_filename', 'get_param', 'get_params', 'get_payload', 'get_unixfrom', 'has_key', 'is_multipart', 'items', 'keys', 'preamble', 'replace_header', 'set_boundary', 'set_charset', 'set_default_type', 'set_param', 'set_payload', 'set_type', 'set_unixfrom', 'values', 'walk']

    说明:

    msg.add_header(_name,_value,**_params):添加邮件头字段。

    msg.as_string():是将msg(MIMEText对象或者MIMEMultipart对象)变为str,如果只有一个html超文本正文或者plain普通文本正文的话,一般msg的类型可以是MIMEText;如果是多个的话,就都添加到MIMEMultipart,msg类型就变为MIMEMultipart。

    msg.attach(MIMEText对象或MIMEImage对象):将MIMEText对象或MIMEImage对象添加到MIMEMultipart对象中。MIMEMultipart对象代表邮件本身,MIMEText对象或MIMEImage对象代表邮件正文。

    以上的构造的文本,超文本,附件,图片都何以添加到MIMEMultipart('mixed')中:

    msg.attach(text_plain)    
    msg.attach(text_html)    
    msg.attach(text_att)    
    msg.attach(image)

     

    3.文字,html,图片,附件实现实例

    复制代码
    #coding: utf-8    
      
    import smtplib    
    from email.mime.multipart import MIMEMultipart    
    from email.mime.text import MIMEText    
    from email.mime.image import MIMEImage 
    from email.header import Header   
        
    #设置smtplib所需的参数
    #下面的发件人,收件人是用于邮件传输的。
    smtpserver = 'smtp.163.com'
    username = 'XXX@163.com'
    password='XXX'
    sender='XXX@163.com'
    #receiver='XXX@126.com'
    #收件人为多个收件人
    receiver=['XXX@126.com','XXX@126.com']
    
    subject = 'Python email test'
    #通过Header对象编码的文本,包含utf-8编码信息和Base64编码信息。以下中文名测试ok
    #subject = '中文标题'
    #subject=Header(subject, 'utf-8').encode()
        
    #构造邮件对象MIMEMultipart对象
    #下面的主题,发件人,收件人,日期是显示在邮件页面上的。
    msg = MIMEMultipart('mixed') 
    msg['Subject'] = subject
    msg['From'] = 'XXX@163.com <XXX@163.com>'
    #msg['To'] = 'XXX@126.com'
    #收件人为多个收件人,通过join将列表转换为以;为间隔的字符串
    msg['To'] = ";".join(receiver) 
    #msg['Date']='2012-3-16'
    
    #构造文字内容   
    text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.baidu.com"    
    text_plain = MIMEText(text,'plain', 'utf-8')    
    msg.attach(text_plain)    
    
    #构造图片链接
    sendimagefile=open(r'D:\pythontest\testimage.png','rb').read()
    image = MIMEImage(sendimagefile)
    image.add_header('Content-ID','<image1>')
    image["Content-Disposition"] = 'attachment; filename="testimage.png"'
    msg.attach(image)
    
    #构造html
    #发送正文中的图片:由于包含未被许可的信息,网易邮箱定义为垃圾邮件,报554 DT:SPM :<p><img src="cid:image1"></p>
    html = """
    <html>  
      <head></head>  
      <body>  
        <p>Hi!<br>  
           How are you?<br>  
           Here is the <a href="http://www.baidu.com">link</a> you wanted.<br> 
        </p> 
      </body>  
    </html>  
    """    
    text_html = MIMEText(html,'html', 'utf-8')
    text_html["Content-Disposition"] = 'attachment; filename="texthtml.html"'   
    msg.attach(text_html)    
    
    
    #构造附件
    sendfile=open(r'D:\pythontest\1111.txt','rb').read()
    text_att = MIMEText(sendfile, 'base64', 'utf-8') 
    text_att["Content-Type"] = 'application/octet-stream'  
    #以下附件可以重命名成aaa.txt  
    #text_att["Content-Disposition"] = 'attachment; filename="aaa.txt"'
    #另一种实现方式
    text_att.add_header('Content-Disposition', 'attachment', filename='aaa.txt')
    #以下中文测试不ok
    #text_att["Content-Disposition"] = u'attachment; filename="中文附件.txt"'.decode('utf-8')
    msg.attach(text_att)    
           
    #发送邮件
    smtp = smtplib.SMTP()    
    smtp.connect('smtp.163.com')
    #我们用set_debuglevel(1)就可以打印出和SMTP服务器交互的所有信息。
    #smtp.set_debuglevel(1)  
    smtp.login(username, password)    
    smtp.sendmail(sender, receiver, msg.as_string())    
    smtp.quit()
    复制代码

    说明:

    如果大家对add_header的入参有更多的了解(Content-Disposition,Content-Type,Content-ID),希望告诉我,谢谢。


    展开全文
  • Python自动发邮件脚本

    2020-09-21 09:24:32
    本文主要介绍了Python自动发邮件脚本的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
  • Python自动发邮件

    2021-09-09 15:05:55
    使用python实现自动发送邮件,可以让部分发邮件的繁琐事情减少,留出更多的时间专注于其他事情。 1、导入库 import smtplib from email.mime.multipart import MIMEMultipart # 多形式组合,可包含文本和组合 from ...

    使用python实现自动发送邮件,可以让部分发邮件的繁琐事情减少,留出更多的时间专注于其他事情。

    1、导入库

    import smtplib
    from email.mime.multipart import MIMEMultipart  # 多形式组合,可包含文本和组合
    from email.mime.text import MIMEText  # 纯文本,HTML页面
    from email.mime.application import MIMEApplication
    from email.mime.image import MIMEImage  # 图片
    from email.header import Header  # 邮件头
    from email.utils import parseaddr, formataddr
    

    2、设置邮箱、发件人、收件人、密码或授权码、邮件主题

    mail_host = "smtp.yyds.com"  # SMTP服务器,使用自己搭建ewomail测试服务器
    mail_sender = "listmail@yyds.com"  # 发件人邮箱
    mail_passwd = "12345678"  # 邮箱密码
    mail_receivers = ["nidayezhongjiushinidaye@yyds.com"]  # 收件人邮箱
    mail_duplicate = ["listmail@oppo.com"]  # 抄送人邮箱
    mail_subject = """python测试邮件"""  # 邮件主题
    

    3、构建MIMEMultipart对象,可以添加文本、图片、附件(这里使用文本)和设置邮件的头部内容

    """构造邮件内容"""
    mes = MIMEMultipart()  # 内容接收池
    # subject_content = """python测试邮件"""  # 邮件主题
    mes["From"] = "Python<listmail@yyds.com>"  # 设置发送者,注意严格遵守格式,里面邮箱为发件人邮箱
    mes["To"] = "test<nidayezhongjiushinidaye@yyds.com>"  # 设置接收者,注意严格遵守格式,里面邮箱为接收者邮箱,多个用“,”号
    mes["Subject"] = Header(mail_subject, 'utf-8')  # 设置邮件主题
    

    4、输入正文内容

    body_content = """你好,这是一个测试邮件!"""  # 邮件正文内容,文本或html等
    message_text = MIMEText(body_content, "plain","utf-8")  # 构造内容,参数1:正文内容,参数2:文本的格式,参数3:编码的方式
    mes.attach(message_text)  # 向MIMEMultipart对象中添加文本对象
    

    5、发送邮件

    stp = smtplib.SMTP()  # 创建SMTP对象
    stp.connect(mail_host, 25)  # 设置发件人邮箱的域名和端口,端口地址为25
    stp.set_debuglevel(1)  # set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
    stp.login(mail_sender, mail_passwd)  # 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码或密码
    stp.sendmail(mail_sender, mail_receivers + mail_duplicate, mes.as_string())  # 发送邮件,传递参数1:发件人邮箱,参数2:收件人邮箱 + 抄送人邮箱,参数3:把邮件内容格式改为str
    print("邮件发送成功")
    stp.quit()  # 关闭SMTP对象
    

    自动发邮箱的类

    # coding=utf-8
    import smtplib
    from email.mime.multipart import MIMEMultipart  # 多形式组合,可包含文本和组合
    from email.mime.text import MIMEText  # 纯文本,HTML页面
    from email.mime.application import MIMEApplication
    from email.mime.image import MIMEImage  # 图片
    from email.header import Header  # 邮件头
    from email.utils import parseaddr, formataddr
    
    
    class MailSender:
        def __init__(self, username, passwd, receivers, subject="Python测试主题"):
            """初始化信息"""
            self.mail_host = "smtp.yyds.com"  # SMTP服务器,使用自己搭建ewomail测试服务器
            self.mail_sender = username  # 发件人邮箱
            self.mail_passwd = passwd  # 邮箱密码
            self.mail_receivers = receivers  # 收件人邮箱
            # self.mail_duplicate = [duplicate]  # 抄送人邮箱
            self.mail_subject = subject  # "python测试邮件"  # 邮件主题
    
        def message_init(self,From,To):
            """构造邮件内容"""
            mes = MIMEMultipart()  # 内容接收池
            # subject_content = """python测试邮件"""  # 邮件主题
            mes["From"] = From # "Python<listmail@yyds.com>"  # 设置发送者,注意严格遵守格式,里面邮箱为发件人邮箱
            mes["To"] = To # "test<test@yyds.com>,你大爷终究是你大爷<nidayezhongjiushinidaye@yyds.com>"  # 设置接受者,注意严格遵守格式,里面邮箱为接受者邮箱
            mes["Subject"] = Header(self.mail_subject, 'utf-8')  # 设置邮件主题
    
            body_content = """你好,这是一个测试邮件!"""  # 邮件正文内容
            message_text = MIMEText(body_content, "plain","utf-8")  # 构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式
            mes.attach(message_text)  # 向MIMEMultipart对象中添加文本对象
            return mes
    
        def send_mail(self, mes):
            stp = smtplib.SMTP()  # 创建SMTP对象
            stp.connect(self.mail_host, 25)  # 设置发件人邮箱的域名和端口,端口地址为25
            stp.set_debuglevel(1)  # set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
            stp.login(self.mail_sender, self.mail_passwd)  # 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码或密码
            stp.sendmail(self.mail_sender, self.mail_receivers , mes.as_string())  # 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
            print("邮件发送成功")
            stp.quit()  # 关闭SMTP对象
    
    
    if __name__ == "__main__":
        receivers_list = "nidayezhongjiushinidaye@yyds.com", "test@yyds.com"
        send = MailSender("listmail@yyds.com", "12345678", receivers_list)
        message = send.message_init("测试Python<listmail@yyds.com>","test<test@yyds.com>,你大爷终究是你大爷<nidayezhongjiushinidaye@yyds.com>")
        send.send_mail(message)
    

    脚本字段对应邮件的内容
    在这里插入图片描述

    展开全文
  • python 自动发送邮件

    2019-04-18 08:53:00
    一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮箱服务器 smtpserver = 'smtp.sina...

     

    一般发邮件方法

    我以前在通过Python实现自动化邮件功能的时候是这样的:

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header # 发送邮箱服务器 smtpserver = 'smtp.sina.com' # 发送邮箱用户/密码 user = 'username@sina.com' password = '123456' # 发送邮箱 sender = 'username@sina.com' # 接收邮箱 receiver = 'receive@126.com' # 发送邮件主题 subject = 'Python email test' # 编写HTML类型的邮件正文 msg = MIMEText('<html><h1>你好!</h1></html>','html','utf-8') msg['Subject'] = Header(subject, 'utf-8') # 连接发送邮件 smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(user, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit()

    其实,这段代码也并不复杂,只要你理解使用过邮箱发送邮件,那么以下问题是你必须要考虑的:

    • 你登录的邮箱帐号/密码
    • 对方的邮箱帐号
    • 邮件内容(标题,正文,附件)
    • 邮箱服务器(SMTP.xxx.com/pop3.xxx.com)

     

    yagmail 实现发邮件

    yagmail 可以更简单的来实现自动发邮件功能。

    安装

    pip install yagmail

    简单例子

    import yagmail
    
    #链接邮箱服务器
    yag = yagmail.SMTP( user="user@126.com", password="1234", host='smtp.126.com') # 邮箱正文 contents = ['This is the body, and here is just text http://somedomain/image.png', 'You can find an audio file attached.', '/local/path/song.mp3'] # 发送邮件 yag.send('taaa@126.com', 'subject', contents) 

    总共四行代码搞定,是不是比上面的例子简单太多了。

    给多个用户发送邮件

    # 发送邮件
    yag.send(['aa@126.com','bb@qq.com','cc@gmail.com'], 'subject', contents)

    只需要将接收邮箱 变成一个list即可。

    发送带附件的邮件

    # 发送邮件
    yag.send('aaaa@126.com', '发送附件', contents, ["d://log.txt","d://baidu_img.jpg"])

    只需要添加要发送的附件列表即可。

     

    转载于:https://www.cnblogs.com/lingcai/p/10727473.html

    展开全文
  • 本文实例讲述了Python自动发送邮件的方法。分享给大家供大家参考,具体如下: python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,...
  • ### 一般发邮件方法我以前在通过Python实现自动化邮件功能的时候是这样的:import smtplibfrom email.mime.text import MIMETextfrom email.header import Header# 发送邮箱服务器smtpserver = 'smtp.sina.com'# ...
  • 最近工作中的一个项目需要自动发送一些信息邮件到指定邮箱的需求,那么如何实现Python自动发送邮件的功能呢?接下来我们就来简单的介绍下如何利用Python来实现自动发送邮件的功能。Python SMTP发送邮件SMTP(Simple ...
  • Python自动发送邮件

    千次阅读 2017-07-11 10:01:06
    本文主要介绍如何使用python实现邮件自动发送。 首先这个功能要求使用的模块是stmplib,email。 SMTP(Simple Message Transport Protocol):简单信息传输协议,只能由于发送邮件。 下面是简要的程序: #!/usr/bin/...
  • Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听器守护程序向任何互联网机器发送邮件。SMTP通讯的基本流程可以概括为以下几点:1.连接SMTP服务器2.登陆用户名和密码3.发送...
  • 原标题:Python发送复杂邮件 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。本篇,我将用两个简单的例子来回答stackoverflow站点上90%的关于python发送email的问题。大部分时候,人们都是利用...
  • python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。smtplib模块主要负责发送邮件:是一个发送邮件的...
  • #-*- coding: utf-8 -*-#@Time : 18-10-14 上午11:00#@Author : Felix Wangfrom email.mime.multipart importMIMEMultipartfrom email.mime.text importMIMETextfrom email.mime.image importMIMEImagefrom email......
  • Python自动发送邮件并添加附件的源代码,真特定网站,比较具有参考价值

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,630
精华内容 17,452
关键字:

python自动发送邮件

python 订阅