跳转到主要内容

可扩展的带有垃圾邮件保护和i18n功能的Django CMS联系人表单插件

项目描述

带有垃圾邮件保护和i18n的Django CMS联系人表单插件。

网站用户输入的消息会被转换为电子邮件,发送到为特定插件实例配置的电子邮件地址。

垃圾邮件保护由ReCAPTCHA(免费)或Akismet(个人使用免费)提供。访问相应网站以获取激活所需保护方法的密钥。

依赖项

Python库

如果您决定使用ReCAPTCHA垃圾邮件保护方法,则需要安装python库recaptcha-client(在Debian中的包名为python-recaptcha)。

如果您使用Akismet进行垃圾邮件保护,则需要akismet。您还需要在django管理后台的“站点”部分设置您的域名url。

对于 Python 版本 <2.7,需要安装 importlib,因为在 Python 2.7 中 importlib 属于标准库,但在旧版本中是第三方包。

所有库都可以通过 pipeasy_install 安装。

推荐使用 South,但不是必需的。同样,它可以通过 pipeasy_install 容易地安装。

安装

下载

从 PyPI

您可以在终端中简单地输入 pip install cmsplugin-contacteasy_install cmsplugin-contact

手动

您可以从 GitHub 下载最新开发版本的 zip 存档。解压下载的文件。然后在您的终端中 cd 进入解压后的文件夹。然后在终端中输入 python setup.py install

设置

'cmsplugin_contact' 放入 settings.py 中的 INSTALLED_APPS 部分。别忘了同步数据库或迁移,如果您使用 South 的话。

'cmsplugin_contact.middleware.ForceResponseMiddleware' 放入 settings.py 中的 MIDDLEWARE_CLASSES 部分。

设置

DEFAULT_FROM_EMAIL

用于发送消息的电子邮件地址从 DEFAULT_FROM_EMAIL Django 设置 中获取。此外,Reply-To: 报头被设置为用户提供的电子邮件地址。

使用用户提供的地址设置电子邮件的 From: 报头目前不支持。这是因为许多服务器会拒绝使用未在该服务器上注册的 From: 地址的电子邮件。一些服务器也可能删除 Reply-To: 报头。因此,用户提供的电子邮件地址也添加到了消息正文中。

RECAPTCHA_PUBLIC_KEY 和 RECAPTCHA_PRIVATE_KEY

如果您不想在管理界面中输入 ReCATPCHA 密钥,您可以通过这些设置提供它们。

AKISMET_API_KEY

Akismet 的设置与 ReCAPTCHA 相同。

CMSPLUGIN_CONTACT_FORMS

默认

(
    ('cmsplugin_contact.forms.ContactForm', _('default')),
)

您可以使用您自定义的 ContactForm,只需添加一个包含类路径和用于向用户显示的漂亮名称的新元组。

如果您想使用默认 ContactForm,可以在设置中这样做

(
    ('cmsplugin_contact.forms.ContactForm', _('default')),
    ('my_app.forms.MyContactForm', _('My form')),
)

在您的自定义表单中,您可以设置您想要使用的模板,如下所示

class MyContactForm(Form):
    ...
    template = 'path/to/my_contact_template.html'

编辑器

默认编辑器是 WYMEditor,类似于 Django CMS。插件尊重 Django CMS 的 USE_TINYMCE 设置。有关如何使用 TinyMCE 的更多信息,请参阅 Django CMS 文档。如果您的 INSTALLES_APPS 中有 'djangocms_text_ckeditor' 包,则使用 CKEditor。

扩展

请参阅 examples/cmsplugin_custom_contact 了解如何子类化 cmsplugin_contact 并添加自定义字段。您可以覆盖子类化 ContactPlugin 的属性并使用您自己的模板和类。

信号

邮件发送

在发送联系邮件后,会触发一个信号。您可以使用它如下

from django.dispatch import receiver
from cmsplugin_contact.cms_plugins import email_sent


@receiver(email_sent)
def handle_signal(sender, **kwargs):
    print kwargs['data']

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分布

cmsplugin-contact-1.1.3.tar.gz (25.3 kB 查看哈希值)

上传时间 源代码

支持