一个用于通过电子邮件向联系人列表发送新闻通讯的Django应用。
项目描述
问题在于
如何将联系数据库与邮件列表结合,并通过Django发送新闻通讯?
想象一下,我们有一个包含某种类型配置文件的应用程序,例如 django.contrib.auth,并且您想要向他们发送新闻通讯并跟踪活动。
这个包是emencia-django-newsletter的分支,具有与django 1.6的兼容性以及其他自定义
功能
与其长篇大论,以下列出主要功能列表
与其他Django模型耦合的能力。
可以在新闻通讯模板中使用变量。
邮件列表管理(合并、导入等)。
在VCard 3.0中导入/导出联系人。
可配置的SMTP服务器,具有流量限制管理。
工作组。
可以发送新闻通讯预览。
订阅和取消订阅邮件列表。
新闻通讯中的附件。
为用户生成唯一的URL。
跟踪统计。
架构
在应用程序架构层面,我们可以看到两个需要解释的原创性。
内容类型
内容类型应用用于将任何联系人模型实例链接到另一个模型实例。这允许您创建与不同应用程序关联的不同类型的联系人,并在任何时候检索关联。
如果某些信息位于关联的模型实例中,这将特别有用。
Cronjob/命令
直到您启动<强>发送新闻通讯强>命令,maja_newsletter应用程序永远不会发送网站上注册的新闻通讯。
$ python manage.py send_newsletter
此命令将根据新闻通讯SMTP服务器的信用额启动需要启动的新闻通讯。这意味着并非所有新闻通讯都会在命令结束时发送,因为如果您使用公共SMTP服务器,在达到发送限制时可能会暂时被禁止。为了避免被禁止,不会同时立即发送所有新闻通讯。
因此,建议每小时创建一个<强>cronjob强>来启动此命令。
安装
依赖关系
请确保在安装之前安装以下软件包
Django >= 1.2
html2text
BeautifulSoup
django-tagging
vobject
xlwt
xlrd
以下软件包是可选的,但方便在新闻通讯中渲染网页。
lxml
获取代码
您可以从http://github.com/nephila/django-maja-newsletter获取最新源代码并运行安装脚本
$ python setup.py install
或使用pip
$ pip install -e git://github.com/nephila/django-maja-newsletter.git#egg=maja_newsletter
对于最新稳定版本,使用easy_install
$ easy_install django-maja-newsletter
应用程序
然后,在项目的设置中注册<强>maja_newsletter强>、<强>admin强>、<强>contenttypes强>和<强>tagging强>。
INSTALLED_APPS = ( # Your favorites apps 'django.contrib.contenttypes', 'django.contrib.sites', 'django.contrib.admin', 'django.contrib.sessions', 'tagging', 'maja_newsletter',)
URLs
在项目的urls.py中添加以下行,以包含新闻通讯的urls,用于在HTML中提供服务。
url(r'^newsletters/', include('maja_newsletter.urls')),
请注意,此urlset是为了方便使用而提供的,但您可以根据需要自定义URL
url(r'^newsletters/', include('maja_newsletter.urls.newsletter')), url(r'^mailing/', include('maja_newsletter.urls.mailing_list')), url(r'^tracking/', include('maja_newsletter.urls.tracking')), url(r'^statistics/', include('maja_newsletter.urls.statistics')),
媒体文件
您必须从maja_newsletter/media/edn/目录到您的媒体目录创建一个符号链接,或者创建一个名为<强>edn强>的副本。但是,如果您想更改此值,请定义settings.py中的NEWSLETTER_MEDIA_URL。
别忘了提供服务。
同步
现在,您可以运行一个syncdb来将模型安装到您的数据库中。
设置
您必须在设置中添加用于发送新闻通讯的电子邮件地址
NEWSLETTER_DEFAULT_HEADER_SENDER = 'My NewsLetter <newsletter@myhost.com>'
DBMS考虑事项
不推荐在生产中使用SQLite。因为SQLite对SQL查询中的变量有限制,为999个,您不能在Django的admin模块中创建超过此限制的邮件列表。建议使用MySQL或PgSQL。
开发
提供了一个Buildout脚本,以便任何希望贡献的人正确初始化项目。
首先,请使用VirtualEnv来保护您的系统。
按照以下步骤开始开发
$ git clone git://github.com/nephila/django-maja-newsletter.git $ virtualenv --no-site-packages maja_newsletter $ cd maja_newsletter $ source ./bin/activate $ python bootstrap.py $ ./bin/buildout
buildout脚本将解决开发应用程序所需的所有依赖项。
完成上述操作后,您就可以开始在这个项目上进行了。
运行此命令以启动测试。
$ ./bin/test
或者您也可以启动演示。
$ ./bin/demo syncdb $ ./bin/demo runserver
很简单,不是吗?
数据库表示
变更日志
0.3
使用 UTM 标签
包内的演示
改进导入功能
HTML 页面的 Premailer。
新的导入功能
与 django 1.3.1 兼容
新闻通讯标题的唯一键变量
许多错误修复
0.2
django-cms 插件
多种导入格式
与 django 1.2 兼容
许多错误修复
0.1dev (未发布)
初始发布
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
散列 for django_maja_newsletter-0.6.0-py2-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | e9b90da272af67e0e2f81db73173e976ca085d05d20addd140d8d2ecaac700ed |
|
MD5 | d5f52b071fae1205b1c6fc1140cbd976 |
|
BLAKE2b-256 | d18eb8f4bbf47c3b00c8a6b1aef0fca038d5e959299d11985ee2b6d25b1a5415 |