电子邮件与芹菜异步通知。

async_notifications的Python项目详细描述


异步通知

带有芹菜和管理视图的电子邮件通知,用于发送带有延迟的电子邮件,例如每天

功能

  • 芹菜集成
  • 管理视图
  • 将邮件系统排队并立即发送
  • 问题通知
  • 用户筛选电子邮件
  • 具有模板上下文的模板系统
  • 发送给用户、组或外部电子邮件
  • django cms集成(djcms_async_notifications)和独立。
  • 自定义文本区域小部件支持
  • 允许发送组邮件列表(如果已定义)。

安装

  1. 从PIP安装

    $ pip install async_notifications
    
  2. 在您的设置中添加所需的应用**

    INSTALLED_APPS=[...'ajax_select','async_notifications']
  3. 在url.py中添加ajax\u select url

    fromdjango.conf.urlsimporturl,includefromajax_selectimporturlsasajax_select_urlsurlpatterns=[...url(r'^ajax_select/',include(ajax_select_urls)),]
  4. 设置指向项目芹菜文件的celeriry_module非常重要,因为将任务分配给当前项目和配置一些默认芹菜选项需要它

    # settings.pyCELERY_MODULE="demo.celery"CELERY_TIMEZONE=TIME_ZONECELERY_ACCEPT_CONTENT=['pickle','json']
  5. 配置电子邮件设置,例如用于开发

    DEFAULT_FROM_EMAIL="mail@example.com"EMAIL_HOST="localhost"EMAIL_PORT="1025"

#从demo复制项目文件夹中的芹菜应用程序,并调整crontab的执行

# celery.pyapp.conf.CELERYBEAT_SCHEDULE={# execute 12:30 pm'send_daily_emails':{'task':'async_notifications.tasks.send_daily','schedule':crontab(minute=30,hour=0),},}

记住使用demo/\u init\uuu.py更新项目文件夹/\u init\uu.py。

  1. 运行迁移

    $ python manage.py migrate
    

运行项目

您需要运行3个子系统才能运行此应用程序,因此需要3个xterm,对于此说明,我将使用演示项目

  1. 运行SMTP调试客户端

    $ python -m smtpd -n -c DebuggingServer localhost:1025
    
  2. 运行芹菜,如果你还没有设置芹菜看到celery documentation

    $ celery -A demo worker -l info -B
    
  3. 运行django

    $ python manage.py runserver
    

用法

报告上下文模板

fromasync_notifications.registerimportupdate_template_contextcontext=[('fieldname','Field description'),('fieldname2','Field description'),...]update_template_context("yourcode",'your email subject',context)

如果找不到,此自动创建电子邮件模板。

context是一个元组列表,其中包含模板上下文中可用的字段,此上下文添加在同一文件中 从模板发送电子邮件

发送电子邮件:)

send_email_from_template(code,recipient,context={},enqueued=True,user=None,upfile=None)

参数说明:

  • 收件人是电子邮件列表
  • 代码与更新模板上下文中的代码寄存器相同
  • 已排队如果false立即发送电子邮件,否则将在发送电子邮件任务运行时排队等待发送。
  • 用户用户如何发送电子邮件
  • upfile电子邮件中的附加文件

其他可选选项

添加上下文虚拟对象

当需要根据模板传递默认模板消息,但没有模板对象时 还需要用Django模板SnToCaseTo编写对象,可以使用DimMyTraceToBube 总是返回类似{{myobj.attr1.objattr}}

fromasync_notifications.registerimportupdate_template_context,DummyContextObjectcontext=[('myobj','Field description'),...]message=render_to_string('some/template.html',context={'myobj':DummyContextObject('myobj')})update_template_context("yourcode",'your email subject',context,message=message)

Django CMS集成

此配置可以帮助您与django cms集成。

包括在已安装的应用程序中

INSTALLED_APPS=[...'async_notifications','async_notifications.djcms_async_notifications',]

配置模型和字段异步通知的使用方式,ej。奥尔德林人

ASYNC_NOTIFICATION_GROUP='aldryn_people.Group'ASYNC_NOTIFICATION_GROUP_LOOKUP_FIELDS={'order_by':'translations__name','email':'email','group_lookup':'translations__name','display':'name','filter':['translations__name__icontains']}ASYNC_NOTIFICATION_USER='aldryn_people.Person'ASYNC_NOTIFICATION_USER_LOOKUP_FIELDS={'order_by':'translations__name','display':'name','filter':['user__first_name__icontains','user__last_name__icontains','translations__name__icontains'],'group_lookup':'groups__translations__name'}

注意

默认情况下使用django auth

cmsplugin contact plus

contact_plus_send_method='异步通知。DJCMS_异步通知。contact_plus。发送电子邮件' 异步通知联系人电子邮件='电子邮件'

注意

这需要特殊的cmsplugin contact plus版本,我们发送了一个prs,但尚未合并。

默认文本区域小部件

例如,使用ckeditor小部件

异步通知区域窗口小部件='ckeditor.widgets.ckeditor widget'

注意

请参阅如何配置CKEditor

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

推荐PyPI第三方库


热门话题
另一个布局上的java Access文本视图   安卓在Java中,我什么时候应该用*导入整个包,而不是从包中导入单个对象?   JavaSpringMVC:请解释@RequestParam和@ModelAttribute之间的区别   java Flyway Ant构建未迁移   java“没有可供下载的文件”   如何解决java静态名称冲突?   我是否需要框架来补充JavaEE6、JSF2 WebApp?哪一个?   java如何传递HttpServletRequest参数?   只有java的视频不会播放声音。为什么?   java在Maven3中做这样的属性重写工作吗?   java计算Android中两个标记之间的距离   Javascript页面加载中的java复选框持久性问题   java序列化lambda函数的映射   java使用jersey、maven和eclipse配置swagger   java我可以在oncreate方法之外使用setContentView吗?   java在使用JAXRS响应类返回实体时遇到异常   java规范了加密和解密文本的文本编写方法   java如何更改ChoiceBox的默认大小?   java在Android上暂时禁用PIN/密码锁