Frequently asked questions¶
The following notes answer some common questions, and may be useful to you when installing, configuring or using django-contact-form-recaptcha.
What versions of Django and Python are supported?¶
As of django-contact-form-recaptcha 1.6.0, Django 1.11 and 2.0 are supported, on Python 2.7 (Django 1.11 only), 3.4, 3.5, or 3.6.
What license is django-contact-form-recaptcha under?¶
django-contact-form-recaptcha is offered under a three-clause BSD-style
license; this is an OSI-approved open-source license, and allows you
a large degree of freedom in modifiying and redistributing the
code. For the full terms, see the file LICENSE
which came with
your copy of django-contact-form-recaptcha; if you did not receive a copy of
this file, you can view it online at
<https://github.com/maru/django-contact-form-recaptcha/blob/master/LICENSE>.
Why am I getting a bunch of BadHeaderError
exceptions?¶
Most likely, you have an error in your
ContactForm
subclass. Specifically, one
or more of from_email
,
recipient_list
or
subject()
are returning values
which contain newlines.
As a security precaution against email header injection attacks (which
allow spammers and other malicious users to manipulate email and
potentially cause automated systems to send mail to unintended
recipients), Django’s email-sending framework does not permit
newlines in message headers.
BadHeaderError
is the exception Django raises when a newline is
detected in a header.
Note that this only applies to the headers of an email message; the message body can (and usually does) contain newlines.
I found a bug or want to make an improvement!¶
The canonical development repository for django-contact-form-recaptcha is online at <https://github.com/maru/django-contact-form-recaptcha>. Issues and pull requests can both be filed there.
If you’d like to contribute to django-contact-form-recaptcha, that’s great! Just please remember that pull requests should include tests and documentation for any changes made, and that following PEP 8 is mandatory. Pull requests without documentation won’t be merged, and PEP 8 style violations or test coverage below 100% are both configured to break the build.