尝试发送电子邮件队列模块

fio_email_queue的Python项目详细描述


此模块实现了一个电子邮件队列,它充当事务安全性 Tryton模块发送电子邮件的缓冲区。

https://travis-ci.org/fulfilio/email-queue.svg?branch=develophttps://coveralls.io/repos/fulfilio/email-queue/badge.png

源代码:https://github.com/fulfilio/email-queue

为什么要使用此模块?

你从你的tryton模块发邮件吗?那么你最需要的 这个模块。原因如下:

交易安全

考虑以下情况:当您发送订单确认电子邮件时 单击“确认”按钮。事务可以回滚为 电子邮件发送给客户后的各种原因。这个 如果您发送订单号或其他 可能改变的信息,第二次保存记录时 第二次添加的第二封电子邮件将垃圾邮件的用户。

这个模块通过将电子邮件缓冲到数据库表来解决这个问题。 在同一事务中。稍后,cron任务将清除电子邮件。如果 事务已回滚,也不会保存在缓冲区中 你不需要做任何单独的事情。

性能

取决于SMTP服务器的设置方式和 服务器,发送电子邮件所需的时间比数据库长 写。这会造成阻塞操作,从而导致不良的用户体验 你的应用程序现在需要更多的工作人员来处理更多这样的请求。 本模块首先缓冲电子邮件,然后 有一个单独的cron任务,通过实际发送来清除电子邮件 它。

可扩展性

如果你想成为大多数互联网所渴望的那样的网络规模,你 可能希望执行网络绑定操作,如发送 来自不同服务器的电子邮件,并使用消息队列进行缩放。本模块 提供了一个api,可以通过子类化email.queue轻松地进行扩展。 建模并更改send_all实现。

如何安装此模块?

从pypi安装:

pip install fio_email_queue

从源安装:

git clone git@github.com:fulfilio/email-queue
python setup.py install

然后可以在数据库中安装该模块。

如何在模块中使用此功能?

该模块提供了一个方便的方法,该方法与 Python的smtplib.SMTP.sendmail 方法。这使得更新现有电子邮件发送代码变得容易。

msg=MIMEText('This is the body')msg['Subject']='An important email'msg['From']='me@me.com'msg['To']='you@you.com'EmailQueue=Pool().get('email.queue')EmailQueue.queue_mail(me,[you],msg.as_string())

如果您的交易成功,电子邮件将排队等待发送 当cron运行时,邮件将通过smtp服务器发送出去。 下一次。

cron每1分钟运行一次,您可以从cron更改频率 设置

如何配置SMTP服务器?

默认情况下,电子邮件使用由 特雷顿。您可以在tryton上配置相同的设置 配置文件。

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

推荐PyPI第三方库


热门话题
JAVA Tictoe Minimax算法不断引发异常   java弹性时间计算器字符串开关   java从表单post操作中检索值   java Selenium webdriver无法在youtube上找到元素   java如何自动填写XFA(PDF)表单?   java为什么我的秒表程序不能运行?   raspberry pi禁用java中的其他声音   java如何配置web。xml,glassfishweb。JSF的xml文件?   使用浏览器运行自动测试时出现java错误。如何运行它?   java如何阻止Swing程序在每次向JTextArea添加文本时调整组件的大小   javajavax。注射注射无效   java如何改进Solaris服务器配置   java如何在elasticsearch后端脱机时处理Hibernate搜索启动   java TCPsocket的延迟很差,除非持续流式传输