尝试发送电子邮件队列模块
fio_email_queue的Python项目详细描述
此模块实现了一个电子邮件队列,它充当事务安全性 Tryton模块发送电子邮件的缓冲区。
源代码: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上配置相同的设置 配置文件。