用于发送异步邮件的developercentric实用程序。

mailables的Python项目详细描述


Build StatusCoveragePackage version


简介

mailables是一个以开发人员为中心的实用程序,用于发送异步邮件。在

要求

Python 3.7+

安装

$ pip install mailables

使用

^{pr2}$

依赖关系

Mailables没有任何硬依赖项,但以下是可选的:

  • ^{}-由FileTransport所需。在
  • ^{}-由SMTPTransport所需。在

您可以使用pip install mailables[full]安装所有这些。在

配置

为了发送电子邮件,您需要配置传输和邮件程序。 Mailer是一个你可以一直工作的类。认为它是mailables的公共接口。 而transport是一个具体的适配器,它执行实际的发送。在

frommailablesimportMailermailer=Mailer('smtp://localhost:25')

当您需要对传输配置进行细粒度控制时 您可以传递传输实例而不是URL字符串:

frommailablesimportMailer,SMTPTransportmailer=Mailer(SMTPTransport(host='localhost',port=25))

这种方法使您可以完全控制交通建设。在

请注意,您不仅限于一个邮寄者, 您的应用程序可能有多个具有不同传输/设置的邮件发送程序。在

邮件

邮件消息由EmailMessage类表示。在

frommailablesimportEmailMessagemessage=EmailMessage(to=['root@localhost','admin@localhost'],from_address='user@localhost',subject='This is a test email',text_body='And this is a body',html_body='And HTML body <b>supported</b> as well',)

附加文件

frommailablesimportEmailMessage,Attachmentmessage=EmailMessage(attachments=[Attachment(contents='CONTENTS',file_name='file.txt')])# or alternatively using `attach` method:message.attach(contents='CONTENTS',file_name='file.txt')# or you can add attachment instance using `add_attachment` method:message.add_attachment(Attachment('contents'))

运输

这是包含的运输工具清单

SMTPTransport

使用SMTP协议发送邮件。在

frommailablesimportSMTPTransporttransport=SMTPTransport(host='localhost',port=25,use_ssl=True)

文件传输

文件传输不会向任何地方发送电子邮件。{cds}格式的{cds}将邮件转储到目录中。在

frommailablesimportFileTransporttransport=FileTransport(directory='/tmp/mailbox')

内存传输

商店在本地变量中发送电子邮件。在

frommailablesimportInMemoryTransport,EmailMessagestorage=[]transport=InMemoryTransport(storage=storage)# example:transport.send(EmailMessage(subject='Hey',to='root@localhost'))assertlen(storage)==1

空传输

这根本就不发送任何信息。当你想让邮件完全静音时就用它。在

frommailablesimportNullTransporttransport=NullTransport()

构建自定义传输

扩展mailables.transport.BaseTransport类和 实现async def send(self, message: EmailMessage)方法:

例如,我们将创建一个简单的传输类,用于将邮件写入标准输出:

frommailablesimportBaseTransport,EmailMessage,MailerclassConsoleTransport(BaseTransport):asyncdefsend(self,message:EmailMessage):print(str(message))mailer=Mailer(ConsoleTransport())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何下载多个。java中的PDF文件   linux Java打开文件,形成实际用户主页~/   java如何在时间线内维护TableView选择?   java Hibernate注释@Where vs@WhereJoinTable   Java读/写访问异常FileNotFoundException(访问被拒绝)   继承在Java中是否可以扩展最后一个类?   Android HttpClient使用java使应用程序崩溃。lang.OutOfMemoryError:pthread_create   java为什么即使我在proguardproject中添加了jar文件,也会出现这种错误。txt?   如果添加JButton,swing Java FocusListener和KeyListener将无法工作   java使用solrj检索json格式的SolrDocument   使用Microsoft Visual Studio代码进行Java编程   java NoClassDefFoundError:org/apache/log4j/Logger   哈希集中包含相等对象的java   java中的参数化构造函数是否需要有一个主体?   java类似于NetBeans不必要的代码检测器   Java实践问题   java Blackberry“[projectname].调试文件丢失”和“I/O错误:找不到程序”jar