使用Mailgun电子邮件解析服务的Flask扩展
Flask-MailGun3的Python项目详细描述
烧瓶Mailgun烧瓶扩展使用 MailGun用于发送和 接收电子邮件。
它的功能
Flask Mailgun允许您配置到Mailgun的连接 这样你可以-发送电子邮件-设置路由-handel传入 电子邮件-flask-mailgun3 >= 0.1.4应与^{tt2}一起使用$ 作为flask_mail
用法
fromflask_mailgunimportMailGunmailgun=MailGun()# .. latermailgun.init_app(app)# ..some other time@mailgun.on_attachmentdefsave_attachment(email,attachment):data=attachment.read()withopen(attachment.filename,"w")asf:f.write(data)# .. even later register the upload endpointmailgun.route('/uploads')# send an email like flask_mailmessage=Message()message.subject="Hello World"message.sender="from@example.com"message.add_recipient("u1@example.com")message.add_recipient("u2@example.com")message.body="Testing some Mailgun awesomness!"mailgun.send(message)
长请求
已经建立了一种机制来简化处理长时间的请求。 基本上,如果回调函数阻止了电子邮件的处理 对于toolong,它将导致来自mailgun服务的邮件超时。 现在通过设置^{tt4}来完成$ 到mailgun.async,但在注册之前必须这样做 回调(也可以在init上重新注册)。
# at configapp.config['MAILGUN_BG_PROCESSES']=flask_mailgun.processing.async_pool(NO_PROCS)app.config['MAILGUN_CALLBACK_HANDELER']=app.config['MAILGUN_BG_PROCESSES']# or latermailgun.callback_handeler=mailgun.async# but you may still have to :(mailgun._on_attachment=[mailgun.async(func)forfuncinmailgun._on_attachment]
Async将附件保存到磁盘,并将回调卸载到 处理池,处理所有文件操作和文件清理 你
然而,这可能不是一个理想的系统(螺纹连接剂量 好的烧瓶和工艺池并不简单),和 为了更稳健,我们需要转向一个基于celary的系统。 但是,设置celary服务器和taksk超出了此范围 扩展(我们将提供一个例子)。此外,它可能 beniffichial移动到notify fetch模式而不是mailgun 将邮件发送给我们,但具体细节仍将保留 内部到flask_mailgun和^{tt7}的api$ 不应该改变