精华内容
下载资源
问答
  • smtplib

    2019-01-16 17:58:00
    利用smtplib及SMTP服务器进行自动发送邮件 可以发送普通文本的正文、html格式的正文 可以添加单个附件,多个附件 import smtplib from email.mime.text import MIMEText from email.header import Header ...

    python3

    pycharm

     

    利用smtplib及SMTP服务器进行自动发送邮件

    可以发送普通文本的正文、html格式的正文

    可以添加单个附件,多个附件

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    from email.mime.multipart import MIMEMultipart
    import re
    
    
    # 提取文件路径中的文件名
    def file_name(path):
        '''
        提取文件路径中的文件名称
        :param path:文件路径
        :return:文件名称
        '''
        reg = r'([^<>/\\\|:""\*\?]+\.\w+$)'
        result = re.compile(reg).findall(path)[0]
        return result
    
    
    class Mail:
    
        def __init__(self,user='xxxx@yy.com',
                     password='********',
                     receivers=None):
            '''
            初始化邮件,指定谁发送,发送给谁
            :param user:发送人邮箱
            :param password:邮箱密码,若qq邮箱,则为授权码
            :param receivers:收件人,若多个收件人,写成列表形式
            '''
    
            #确定发送人
            self.user = user  # 发件人邮箱
            self.password = password  # 发件人密码
    
            #根据邮箱判断服务器、正则匹配
            reg = r"@(.+?).com"
            result=re.compile(reg).findall(user)[0]
    
            if result == 'qq':
                self.host='smtp.qq.com'
    
            if result == 'fulaan':
                self.host='smtp.exmail.qq.com'
    
            if result == '163':
                self.host='smtp.163.com'
    
            if result == '126':
                self.host='smtp.126.com'
    
            if result == '188':
                self.host='smtp.188.com'
    
            if result == 'netease':
                self.host='smtp.netease.com'
    
            if result == 'yeah':
                self.host='smtp.yeah.net'
    
            if result == 'gmail':
                self.host='smtp.gmail.com'
    
    
            # 确定接收人,为列表形式,若多个接收人,则在列表中加入多个元素
            if receivers == None:
                raise Exception('Error:请输入收件人')
            elif isinstance(receivers,str) == True:              # 判断传入的receviers类型,若不是列表,转换为列表
                self.receivers = receivers.split()    
            elif isinstance(receivers,list) == True:
                self.receivers = receivers
    
    
        def send(self,Subject,Content,From,type='plain',payload=None):
            '''
            指定发送内容(正文,抬头),是否添加附件
            :param Subject:邮件标题
            :param Content:邮件正文
            :param From: 从哪里发来
            :param type:正文格式,html  或者  plain
            :param payload:附件,默认为None,无附件;若要一并发送附件,该参数请输入附件路径;多个写成列表
            :发送邮箱默认为发件人的邮箱
            :return:
            '''
            To = ''.join(self.receivers)  # 发给谁,默认填写发件人邮箱
    
            # 不添加附件
            if payload == None:
                message = MIMEText(Content, type, 'utf-8')  # 创建一个不带附件的实例,加入正文
                message['Subject'] = Header(Subject, 'utf-8')  # 加入标题
                message['From'] = Header(From, 'utf-8')  # 加入From
                message['To'] = Header(To, 'utf-8')  # 加入To
    
            # 添加附件
            else:
                message = MIMEMultipart()  # 构造一个带附件的实例
                message.attach(MIMEText(Content, type, 'utf-8'))  # 加入正文
                message['Subject'] = Header(Subject, 'utf-8')  # 加入标题
                message['From'] = Header(From, 'utf-8')  # 加入From
                message['To'] = Header(To, 'utf-8')  # 加入To
    
                #判断附件个数,若为1个,转为列表
                if isinstance(payload,str) == True:
                    list=payload.split()
                elif isinstance(payload,list) == True:
                    list=payload
    
                # 构造附件
                for i in list:
                    payload_add = MIMEText(open('{}'.format(i), 'rb').read(), 'base64', 'utf-8')  # 选择附件
                    payload_add["Content-Type"] = 'application/octet-stream'  # 定义附件类型
                    payload_add.add_header(
                        'Content-Disposition',
                        'attachment',
                        filename=('gbk', '', file_name(i))  # 所发出的文件名默认为原文件名,这里要加入编码设置,不然中文会显示乱码
                    )
                    # 加入附件
                    message.attach(payload_add)      # 一个附件,执行一次;多个附件,执行多次
    
            # 连接服务器,并且发送邮件
            try:
                smtp = smtplib.SMTP()
                smtp.connect(self.host)
                smtp.login(self.user, self.password)
                smtp.sendmail(self.user, self.receivers, message.as_string())
                print('发送成功!')
            except:
                raise Exception('Error:发送失败,请检查密码是否正确,邮箱是否开启SMTP服务,正文格式')

    使用

    from mail import Mail
    
    
    mail=Mail(receivers='4903xxxxxx@qq.com')    #user、password使用默认值
    mail.send(
        Subject='python test',
        Content='<html><p style="color: red">你好,这是一封测试邮件!!!</p></html>',
        From='xxxx',
        type='html',
        payload="D:\hello\\test\\2019-1-16测试报告.txt"
              )

    ---------------

    发送成功!

    注:若要使用smtplib发送邮件,发送的邮箱需进行设置,开启SMTP服务,方可进行发送

     

    转载于:https://www.cnblogs.com/cooper-wang/p/10278450.html

    展开全文
  • smtplib 使用Python中smtplib模块,来实现邮件发送 测试完毕
  • smtplib模块

    千次阅读 2019-05-24 16:36:26
    smtplib模块 python实现发邮件使用到的是smtplib模块。 import smtplib # smtp 服务 import email.mime.multipart # 处理邮件头部信息的函数 import email.mime.text # 处理发送的文本函数 emai_user = '19...

    smtplib模块

    python实现发邮件使用到的是smtplib模块。

    import smtplib                  # smtp 服务
    import email.mime.multipart     # 处理邮件头部信息的函数
    import email.mime.text          # 处理发送的文本函数
    
    emai_user = '19XXXXXXXXXX@163.com'      # 发送者
    emai_recver = '1XXXXXXXXX@qq.com'      # 接收者
    emai_passwd = 'XXXX'      # 发送者的授权码
    emai_server = 'smtp.163.com'  # 服务器
    
    message = email.mime.multipart.MIMEMultipart()  # 创建一个空邮件-message
    message['from'] = emai_user   # 来自发送者
    message['to'] = emai_recver   # 发给接收者
    message['subject'] = '测试报告——邮件'     # 标题
    
    """邮件内容"""
    
    content = """
    昨夜西风凋碧树,独上高楼,望尽天涯路!!!
    
    衣带渐宽终不悔,为伊消得人憔悴!!!
    
    众里寻他千百度,蓦然回首,那人却在,灯火阑珊处
    
    今天,又是新的一天,加油!!!
    """
    
    content1 = email.mime.text.MIMEText(content)          # 处理正文信息   不加1
    message.attach(content1)                            # 把文本加入到邮件          不加1
    
    """添加附件att2"""
    att2 = email.mime.text.MIMEText(open(r'a.text', 'rb').read(), 'base64', 'utf-8')   # 添加附件,
    att2["Content-Type"] = 'application/octet-stream'        # 头部字段
    att2["Content-Disposition"] = 'attachment;filename="a.text"'   # 两个a.text都为文件路径。
    message.attach(att2)       # att2 为附件名,将附件名里的内容整到message中
    
    smtp123 = smtplib.SMTP_SSL(emai_server, 465)                # stmp+ssl
    smtp123.login(emai_user, emai_passwd)                     # 登录 服务器
    smtp123.sendmail(emai_user, emai_recver, message.as_string())   # 发送邮件 最后一个解释将邮件处理成一个字符串。
    smtp123.close()                                               # 结束。
    
    展开全文
  • Cannot install smtplib

    2020-12-09 01:08:54
    ERROR: Could not find a version that satisfies the requirement smtplib (from -r requirements.txt (line 4)) (from versions: none) ERROR: No matching distribution found for smtplib (from -r ...
  • python模块smtplib学习

    2020-09-20 11:54:45
    主要为大家详细介绍了python模块smtplib的学习相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python pip安装smtplib库的方法

    万次阅读 多人点赞 2018-09-07 23:54:39
    **首先是:pip search smtplib 然后会出现很多的可供选择的库,按照需要下载就好了** PyEmail (0.0.1) - Python library to send emails using SMTPLIB library micropython-smtplib (0.0.0) - Dummy smtplib ...

    前言

    自己在安装的时候也踩了很多的坑,所以写一篇博文记录一些方法,分享

    很多人采坑可能和我一样是直接pip install smtplib,导致报错

    开始

    要安装smtplib 首先可以执行一下这个命令:pip search smtplib

    然后会出现很多的可供选择的库,按照你的需要安装就好了,如下方

    PyEmail (0.0.1)              - Python library to send emails using SMTPLIB library
    micropython-smtplib (0.0.0)  - Dummy smtplib module for MicroPython
    personal (0.1.1)             - Easy, secure self notification via email and sms, using smtplib and twilio
    aiosmtplib (0.1.4)           - asyncio version of smtplib
    secure-smtplib (0.1.1)       - Secure SMTP subclasses for Python 2
    mailclient (0.2.0)           - Simplified use of smtplib for Python. Easy email sending.
    smtplibaio (1.0.3)           - An async version of smtplib
    easyemail (0.4.0)            - Simple lib abstracting email sending with smtplib.
    

    这里一般用PyEmail,所以直接pip install PyEmail 就行 ,然后再import smtplib就不会有问题了

    结束

    其实还是很简单的,但是第一次可能就会很困惑

    https://curl.qcloud.com/lVkcz8tr
    297买3年 1核2G 5M带宽 轻量级云服务器活动地址,需要的朋友可以看看

    展开全文
  • Py之smtplibsmtplib(aiosmtplib)的简介、安装、使用方法之详细攻略 目录 smtplib(aiosmtplib)的简介 smtplib(aiosmtplib)的安装 smtplib(aiosmtplib)的使用方法 smtplib(aiosmtplib)的...

    Py之smtplib:smtplib(aiosmtplib)的简介、安装、使用方法之详细攻略

     

     

     

    目录

    smtplib(aiosmtplib)的简介

    smtplib(aiosmtplib)的安装

    smtplib(aiosmtplib)的使用方法


     

     

     

     

     

     

     

    smtplib(aiosmtplib)的简介

             SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

    aiosmtplib.readthedocsUser’s Guide

     

    smtplib(aiosmtplib)的安装

    pip install aiosmtplib

     

    smtplib(aiosmtplib)的使用方法

    参考文章:
    Py之smtplib:smtplib(aiosmtplib)应用之获取126邮箱授权码的图文教程详细攻略
    Py之smtplib:smtplib(aiosmtplib)应用之获取qq邮箱授权码的图文教程详细攻略
    Python之smtplib :基于python语言利用qq邮箱发送邮件

    1、使用 Python 发送邮件简单的实例

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
     
    sender = 'from@runoob.com'
    receivers = ['429240967@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
     
    # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
    message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
    message['From'] = Header("菜鸟教程", 'utf-8')   # 发送者
    message['To'] =  Header("测试", 'utf-8')        # 接收者
     
    subject = 'Python SMTP 邮件测试'
    message['Subject'] = Header(subject, 'utf-8')
     
     
    try:
        smtpObj = smtplib.SMTP('localhost')
        smtpObj.sendmail(sender, receivers, message.as_string())
        print "邮件发送成功"
    except smtplib.SMTPException:
        print "Error: 无法发送邮件"

    2、

     

     

     

    展开全文
  • smtplib.SMTPSenderRefused

    2020-12-01 13:10:52
    smtplib.SMTPSenderRefused: (451, b'4.4.2 Timeout - closing connection. f72sm7408867pff.78 - gsmtp', 'programatix.email.com') 2017-06-11 01:28 ERROR notify_entry Movies (451, b'...
  • smtplib.SMTPDataError

    2020-12-06 08:05:18
    WARNING failed to send message (exception: smtplib.SMTPDataError)" This issue just started a couple days ago. I was able to successfully use King Phisher to send emails via Office 365 SMTP just a ...
  • smtplib发邮件

    2020-01-03 17:47:24
    dataframe转html(且dataframe中含图片) ,smtplib利用qq...# smtplib_mail.py # -*- coding:utf-8 -*- import smtplib import configparser from email.mime.text import MIMEText from email.mime.multipart imp...
  • 报错: raise SMTPAuthenticationError(code, resp) smtplib.SMTPAuthenticationError: (535, b'Login fail. Authorization code is expired')
  • /usr/lib/python3.7/smtplib.py", line 730, in login raise last_exception File "/usr/lib/python3.7/smtplib.py", line 721, in login initial_response_ok=initial_response_ok) File "...
  • 主要为大家详细介绍了python邮件发送smtplib的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Python smtplib实现发送邮件功能,包含文本、附件、图片等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Python SMTPLIB

    2014-10-24 00:37:23
    Python #! /user/bin/python #-*-coding: UTF-8-*- ...import smtplib, mimetypes from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.multipart import MIM
  • 理解Python模块smtplib

    2020-05-24 10:14:30
    smtplib Python Documents 菜鸟教程 python:利用smtplib模块发送邮件详解 The smtplib module defines an SMTP client session object that can be used to send mail to any Internet machine with an SMTP or...
  • smtplib Python发送邮件

    2020-03-30 13:19:33
    smtplib发送邮件邮件 邮件 # smtplib 邮件的发信动作 import smtplib # email 邮件内容 from email.mime.text import MIMEText from email.header import Header class SendEMail(object): def __init__(self, ...
  • python的smtplib

    2019-09-18 21:53:11
    python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。 smtp协议的基本命令包括: HELO 向服务器标识用户身份 MAIL 初始化邮件传输 mail from: RCPT 标识单个的邮件接收人;常在MAIL...
  • python-smtplib

    2018-05-09 15:07:39
    1.作用:发送邮件eg:import smtplibfrom email.mime.text import MIMETextsmtpObj = smtplib.SMTP('smtp.163.com',25)#连接到smtp服务器,不同邮箱的smtp服务器域名和端口号不同smtpObj.ehlo()smtpObj.starttls()#...
  • smtplib 报错501

    2019-10-06 14:03:51
    报错信息:smtplib.SMTPSendRefused(501,b'\xc7\xeb\xb5\xc7\xc2\xbcexmail.qq.com\xd0\xde\xb8\xc4\xc3\xdc\xc2\xeb', ...... 根据错误501,大致直到是邮件服务器的问题。根据自觉判断账号密码过期了...
  • 主要介绍了Python基于smtplib协议实现发送邮件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Py之smtplibsmtplib(aiosmtplib)应用之获取126邮箱授权码的图文教程详细攻略 目录 获取126邮箱授权码的图文教程详细攻略 1、打开126邮箱账户 2、输入手机号及其验证码 获取126邮箱授权码的图文...
  • Py之smtplibsmtplib(aiosmtplib)应用之获取qq邮箱授权码的图文教程详细攻略 目录 获取qq邮箱授权码的图文教程 1、先登录QQ邮箱,选择开启服务 2、点击生成授权码并保存! 3、最后保存设置即可! ...
  • python利利用用smtplib实实现现QQ邮邮箱箱发发送送邮邮件件 这篇文章主要为大家详细介绍了python利用smtplib实现QQ邮箱发送邮件具有一定的参考价值感兴趣的小伙伴 们可以参考一下 python的smtplib 供了一种很方便的...
  • 主要介绍了Python基于smtplib实现异步发送邮件服务,需要的朋友可以参考下
  • 主要介绍了python使用电子邮件模块smtplib的方法,需要的朋友可以参考下
  • 本篇文章给大家分享了python email smtplib模块发送邮件的相关代码分享,有需要的朋友参考学习下。
  • python smtplib使用

    2018-09-26 15:32:46
    需要使用python3 都是python自带的模块,不需要单独安装需求: 获取sms接口得到剩余短信量,将剩余结果发送到邮箱便于续费使用 Python SMTP发送邮件 ...   python的smtplib提供了一种很方便的途径...
  • 主要为大家详细介绍了python3使用smtplib实现发送邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

空空如也

空空如也

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

smtplib