python 异步发送邮件 aiosmtplib

aiosmtplib is an asynchronous SMTP client for use with asyncio.项目地址
与 smtplib的用法大体相同
for example

import asyncio
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.header import Header
import aiosmtplib
import logging

def _format_addr(s): #格式化地址 也方便发送中文
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))

from_addr = ''
password = ''
to_addr = ''

async def sendemail(loop):
    title = '<html><body><h3>亲爱的<a data-auto-link="1" href="mailto:%s" target="_blank">%s</a>,您好:</h3>'%(to_addr,to_addr)
    reset = "<div style = 'padding-left:55px;padding-right:55px;font-family:'微软雅黑','黑体',arial;font-size:14px;'>重置密码</div>"
    body = '<p>请点击以下链接进行重置密码 <a href="%s">%s</a></p>'%(link,reset)
    tail = '如果您并不是Awesome用户,可能是其他用户误输入了您的邮箱地址。</body></html>'
    html = title+body+tail

    msg = MIMEText(html, 'html', 'utf-8')
    msg['From'] = _format_addr('Awesome Python Webapp <%s>' % from_addr)
    msg['To'] = _format_addr('亲爱的用户 <%s>' % to_addr)
    msg['Subject'] = Header('重置密码', 'utf-8').encode()

   try:
        async with aiosmtplib.SMTP(hostname=smtp_server, port=465,use_tls=True) as smtp:
            await smtp.login(from_addr,password)
            await smtp.send_message(msg)
    except aiosmtplib.SMTPException as e:
        logging.error('sendemail:%s'%e)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(sendemail(loop))

原文地址:https://www.cnblogs.com/ShawSpring/p/10699771.html

时间: 2024-10-14 00:22:19

python 异步发送邮件 aiosmtplib的相关文章

python模范发送邮件的时候,才smtp.connect的时候总是抛出错误

python发送邮件的时候,总是出现:[Errno 10060] 错误码 根据debug得到在connect的时候出错. 认真检查了下host,没有错呀~应该就是服务器的host. 查看了下网上的一些例子,发现qq的host举例:smtp.qq.com/smtp.163.com/smtp.162.com 于是觉得应该用smtp.+XXX.com来试一下~就可以解决了~ python模范发送邮件的时候,才smtp.connect的时候总是抛出错误,布布扣,bubuko.com

转-python异步IO-asyncio

原文连接 http://blog.chinaunix.net/uid-190176-id-4223282.html 前言 异步操作在计算机软硬件体系中是一个普遍概念,根源在于参与协作的各实体处理速度上有明显差异.软件开发中遇到的多数情况是CPU与IO的速度不匹配,所以异步IO存在于各种编程框架中,客户端比如浏览器,服务端比如node.js.本文主要分析Python异步IO. Python 3.4标准库有一个新模块asyncio,用来支持异步IO,不过目前API状态是provisional,意味着

python实现发送邮件功能

前一段时间实现了一个python脚本发送邮件的功能,该脚本是借用smtp服务器发送邮件,邮件以附件的形式发出,如果要添加正文,修改添加即可. #!/usr/bin/env python #coding: utf-8 import smtplib, re, sys, os import xlwt from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.im

Python异步Socket编程

异步网络据说能极大的提高网络server的连接速度,所以打算写一个专题,来学习和了解异步网络.因为Python有个非常出名的异步Lib:Twisted,所以就用Python来完成. OK,首先写一个pythone socket的server段,对开放三个端口:10000,10001,10002.krondo的例子中是每个server绑定一个端口,测试的时候需要分别开3个shell,分别运行.这太麻烦了,就分别用三个Thread来运行这些services. Java代码   import optp

&lt;史上最强&gt;深入理解 Python 异步编程(上)

前言 很多朋友对异步编程都处于"听说很强大"的认知状态.鲜有在生产项目中使用它.而使用它的同学,则大多数都停留在知道如何使用 Tornado.Twisted.Gevent 这类异步框架上,出现各种古怪的问题难以解决.而且使用了异步框架的部分同学,由于用法不对,感觉它并没牛逼到哪里去,所以很多同学做 Web 后端服务时还是采用 Flask.Django等传统的非异步框架. 从上两届 PyCon 技术大会看来,异步编程已经成了 Python 生态下一阶段的主旋律.如新兴的 Go.Rust.

Python异步通信模块asyncore

Python异步通信模块asyncore 介绍 Python的asyncore模块提供了以异步的方式写入套接字服务的client和server的基础结构. 模块主要包含: asyncore.loop(-) - 用于循环监听网络事件.loop()函数负责检測一个字典.字典中保存dispatcher的实例. asyncore.dispatcher类 - 一个底层套接字对象的简单封装.这个类有少数由异步循环调用的,用来事件处理的函数. dispatcher类中的writable()和readable(

【demo】自己写的一个 SpringMail 异步发送邮件的demo。 javamail 邮件异步发送

原文:[demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 源代码下载地址:http://www.zuidaima.com/share/1550463483120640.htm [demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 (注意 配置里面的账号跟发件人账号要一致) 1. 请各位在跑单元测试的时候,在 spring-mail.xml 文件中配置自己的邮箱账号和密码 (我已经注释掉了)

深入理解 Python 异步编程(上)

http://python.jobbole.com/88291/ 前言 很多朋友对异步编程都处于"听说很强大"的认知状态.鲜有在生产项目中使用它.而使用它的同学,则大多数都停留在知道如何使用 Tornado.Twisted.Gevent 这类异步框架上,出现各种古怪的问题难以解决.而且使用了异步框架的部分同学,由于用法不对,感觉它并没牛逼到哪里去,所以很多同学做 Web 后端服务时还是采用 Flask.Django等传统的非异步框架. 从上两届 PyCon 技术大会看来,异步编程已经成

Python异步IO --- 轻松管理10k+并发连接

前言 异步操作在计算机软硬件体系中是一个普遍概念,根源在于参与协作的各实体处理速度上有明显差异.软件开发中遇到的多数情况是CPU与IO的速度不匹配,所以异步IO存在于各种编程框架中,客户端比如浏览器,服务端比如node.js.本文主要分析Python异步IO. Python 3.4标准库有一个新模块asyncio,用来支持异步IO,不过目前API状态是provisional,意味着不保证向后兼容性,甚至可能从标准库中移除(可能性极低).如果关注PEP和Python-Dev会发现该模块酝酿了很长时