Description
Functional HTML forms. Hosted at https://formspree.io.
Just send your form to our URL and we'll forward it to your email. No PHP, Javascript or sign up required โ perfect for static sites!
Example: http://testformspree.com/
formspree alternatives and similar software solutions
Based on the "Email" category.
Alternatively, view formspree alternatives based on common mentions on social networks and blogs.
-
Mail-in-a-Box
Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box. -
Listmonk
High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app. -
docker-mailserver
DISCONTINUED. A fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) using Docker. [Moved to: https://github.com/docker-mailserver/docker-mailserver] -
Tutanota makes encryption easy
Tuta is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices. -
Cypht
Cypht: Lightweight Open Source webmail aggregator [PHP, JS]. Supports IMAP/SMTP, JMAP and soon EWS -
phpList
Fully functional Open Source email marketing manager for creating, sending, integrating, and analysing email campaigns and newsletters. -
Disposable Mailbox
DISCONTINUED. Simple disposable mailbox web-app based on a catch-all IMAP mailbox. -
OpenSMTPD
This is official OpenSMTPD Portable repository. Forks, pull requests and other contributions are welcome! -
WebMail Lite
AfterLogic WebMail Lite PHP. Fast and easy-to-use webmail front-end for your existing IMAP mail server, Plesk or cPanel. -
Ptorx
DISCONTINUED. ๐ฉ๐ก Email privacy. Anonymously send and receive with alias forwarding. (Abandoned) -
MailCare
DISCONTINUED. [MIRRORING REPOSITORY] See https://gitlab.com/mailcare/mailcare. MailCare is an open source disposable email address services. Accessible via web browser or API to protect your privacy right now. -
Dada Mail
Self-Hosted, Full Featured, Email Mailing List Manager. Announcement + Discussion Lists, Web-based Installer, Installs with minimal dependencies, sendmail/SMTP/Amazon SES supported -
Qmail
Bind to different local ip addresses depending on the domain part of the sender argument when using `qmail-remote`. -
Cyrus IMAP/POP3
Intended to be run on sealed servers, where normal users are not permitted to log in.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of formspree or a related project?
README
This repository is no longer active. If you're looking for a simple and powerful hosted form API, please check out https://formspree.io. If you are interested in self-hosting the code in this repository, you may do so while complying with the LICENSE file. However, Formspree can't offer support.
FORMSPREE.IO
Functional HTML forms. Hosted at https://formspree.io.
Just send your form to our URL and we'll forward it to your email. No PHP, Javascript or sign up required โ perfect for static sites! Example:
<form action="https://formspree.io/[email protected]">
<input type="text" name="name">
<input type="email" name="_replyto">
<input type="submit" value="Send">
</form>
Setting it up is easy and free. Here's how:
You don't even have to register.
1. Setup the HTML form
Change your form's action-attribute to this and replace [email protected] with your own email.
2. Submit the form and confirm your email address
Go to your website and submit the form once. This will send you an email asking to confirm your email address, so that no one can start sending you spam from random websites.
3. All set, receive emails
From now on, when someone submits that form, we'll forward you the data as email.
Advanced features:
Form inputs can have specially named name-attributes, which alter functionality. They are all prefixed with an underscore.
_replyto
This value is used for the email's Reply-To field. This way you can directly "Reply" to the email to respond to the person who originally submitted the form.
_next
By default, after submitting a form the user is shown the Formspree "Thank You" page. You can provide an alternative URL for that page.
_subject
This value is used for the email's subject, so that you can quickly reply to submissions without having to edit the subject line each time.
_cc
This value is used for the email's CC Field. This lets you send a copy of each submission to another email address. If you want to cc multiple emails, simply make the cc field a list of emails each separated by a comma.
_gotcha
Add this "honeypot" field to avoid spam by fooling scrapers. If a value is provided, the submission will be silently ignored. The input should be hidden with CSS.
Using AJAX
Formspree Gold users can submit forms via AJAX. This even works cross-origin. The trick is to set the Accept header to application/json. If you're using jQuery this can be done like so:
$.ajax({
url: "https://formspree.io/FORM_ID",
method: "POST",
data: {message: "hello!"},
dataType: "json"
});
If you are experiencing issues, please take a look at the [FAQ](../../wiki/Frequently-Asked-Questions) in the wiki
Running your own copy of Formspree
Running on localhost
You'll need a SendGrid account, PostgreSQL, Redis and Python 2.7 and should install pip, and create a virtual environment for the server.
Once your environment is setup, create a postgresql database, clone the source and cd into the root of the Formspree repository. Then run:
pip install -r requirements.txt
then create a .env
file with your configuration like the following:
API_ROOT='http://127.0.0.1:5000'
CONTACT_EMAIL='[email protected]'
DATABASE_URL='postgresql://<username>@127.0.0.1:5432/formspree'
DEBUG='True'
DEFAULT_SENDER='[email protected]'
LOG_LEVEL='debug'
MONTHLY_SUBMISSIONS_LIMIT='100'
NONCE_SECRET='y0ur_n0nc3_s3cr3t'
HASHIDS_SALT='a salt'
REDISTOGO_URL='127.0.0.1:6379'
SECRET_KEY='y0ur_s3cr3t_k3y'
SENDGRID_PASSWORD='<password>'
SENDGRID_USERNAME='<username>'
SERVICE_NAME='LocalFormspree'
SERVICE_URL='http://127.0.0.1:5000'
TEST_DATABASE_URL='postgresql://<username>@127.0.0.1:5432/formspree-test'
Tell the Flask CLI about the application by typing export FLASK_APP=manage.py
or if using a virtualenv you can add it to the activate
script
Make sure you have a postgresql database called formspree
and create the necessary tables by running:
flask db upgrade
And you are ready to run the server:
flask run
Running tests
REDISTOGO_URL='0.0.0.0:6379' \
TEST_DATABASE_URL=postgresql://<username>@127.0.0.1:5432/formspree-test \
NONCE_SECRET='y0ur_n0nc3_s3cr3t' \
HASHIDS_SALT='a salt' \
SECRET_KEY='y0ur_s3cr3t_k3y' \
STRIPE_TEST_PUBLISHABLE_KEY='<STRIPE PUBLISHABLE>' \
STRIPE_TEST_SECRET_KEY='<STRIPE SECRET>' \
python -m unittest discover
Make sure that you do NOT use your actual formspree
database when running tests. Doing so will cause you to lose all data located in your formspree
database. Instead create a new database called formspree-test
.
You can also use Foreman to automate running tests. After installing, run foreman run venv/bin/python -m unittest discover
to run the entire test suite. To run a single test file, run foreman run venv/bin/python -m unittest tests.test_users
. In this case, it will run only tests/test_users.py
.
Running on Heroku
You will need to install the Heroku toolbelt.
Once your environment is setup, clone the source and cd into the root of the Formspree repository. Then run:
heroku apps:create [your project name]
then
git push heroku
Your new project will be running at [your project name].herokuapp.com.
Dependencies
Formspree requires a PostgreSQL database and uses SendGrid to send emails. If you're deploying to Heroku you can get a free Heroku Postgres database and a SendGrid account by running
heroku addons:create heroku-postgresql:hobby-dev
heroku addons:create sendgrid
Configuring Formspree
Take a look at the formspree/settings.py
file for a list of environment variables that should be set in order for Formspree to work correctly.
Contributing
Formspree is an open source project managed on GitHub. We welcome all contributions from the community, but please be sure to take a look at the [contributor guidelines](/.github/CONTRIBUTING.md) before opening an issue or pull request.
*Note that all licence references and agreements mentioned in the formspree README section above
are relevant to that project's source code only.