Github: https://github.com/formspree/formspree
FORMSPREE.IO
機能的なHTMLフォーム。 https://formspree.ioでホストされています 。
あなたのフォームをURLに送信するだけで、あなたのメールに転送されます。 PHP、Javascript、サインアップは不要 – 静的なサイトに最適! 例:
<form action="https://formspree.io/you@email.com">
<input type="text" name="name">
<input type="email" name="_replyto">
<input type="submit" value="Send">
</form>
設定は簡単で無料です。 方法は次のとおりです。
登録する必要はありません。
1. HTMLフォームの設定
フォームのaction属性をthisに変更し、your @email.comを自分のメールアドレスに置き換えてください。
2.フォームを送信し、メールアドレスを確認します。
あなたのウェブサイトに行き、フォームを一度提出してください。 これにより、誰もあなたがランダムなウェブサイトからあなたにスパムを送信しないように、あなたのメールアドレスを確認する電子メールが送信されます。
3.すべてのセットは、電子メールを受信する
今後、誰かがそのフォームを送信すると、そのデータを電子メールで転送します。
高度な機能:
フォーム入力には、機能を変更する特別に名前付きの名前属性を含めることができます。 それらはすべて先頭にアンダースコアが付いています。
_に返信
この値は、電子メールの返信先フィールドに使用されます。 こうすることで、最初にフォームを送信した人に返信するために、電子メールに直接「返信」することができます。
_次
デフォルトでは、フォームを送信した後、ユーザーにはFormspreeの「ありがとうございました」ページが表示されます。 そのページの代替URLを指定することができます。
_subject
この値は電子メールの件名に使用されるため、毎回件名を編集することなく、投稿にすばやく返信することができます。
_cc
この値は電子メールのCCフィールドに使用されます。 これにより、各投稿のコピーを別のメールアドレスに送信できます。 複数の電子メールを参照する場合は、ccフィールドにカンマで区切られた電子メールのリストを作成するだけです。
_gotcha
この “ハニーポット”フィールドを追加すると、スクレイパーをだますことで迷惑メールを防ぐことができます。 値が指定されている場合、投稿は暗黙のうちに無視されます。 入力はCSSで非表示にする必要があります。
AJAXを使用する
Formspree Goldユーザーは、AJAX経由でフォームを送信できます。 これはクロスオリジンでも機能します。 そのトリックは、Acceptヘッダーをapplication / jsonに設定することです。 jQueryを使用している場合、これは次のように行うことができます:
$.ajax({
url: "https://formspree.io/FORM_ID",
method: "POST",
data: {message: "hello!"},
dataType: "json"
});
問題が発生している場合は、wikiのよくある質問をご覧ください
Formspreeの独自のコピーを実行する
localhostで実行する
SendGridアカウント、PostgreSQL、Redis、Python 2.7が必要です.pipをインストールし、サーバーの仮想環境を作成する必要があります。
環境が設定されたら、postgresqlデータベースを作成し、ソースをクローンしてFormspreeリポジトリのルートにcdします。 次に、
pip install -r requirements.txt
次のような構成で.env
ファイルを作成します。
API_ROOT='http://127.0.0.1:5000'
CONTACT_EMAIL='support@example.com'
DATABASE_URL='postgresql://<username>@127.0.0.1:5432/formspree'
DEBUG='True'
DEFAULT_SENDER='no-reply@localhost.com'
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'
formspree
と呼ばれるpostgresqlデータベースがあることを確認し、次のformspree
を実行して必要なテーブルを作成します。
python manage.py db upgrade
サーバーを実行する準備が整いました。
python manage.py runserver
テストの実行
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
テストを実行するときに実際のformspree
データベースを使用しないようにしてください。 formspree
、 formspree
データベースにあるすべてのデータが失われます。 代わりに、 formspree-test
という新しいデータベースを作成します。
Foremanを使用して、実行中のテストを自動化することもできます。 インストール後、 foreman run venv/bin/python -m unittest discover
を実行して、テストスイート全体を実行します。 単一のテストファイルを実行するには、 foreman run venv/bin/python -m unittest tests.test_users
ます。 この場合、 tests/test_users.py
だけが実行されtests/test_users.py
。
ヘロクで走る
Herokuのツールベルトを取り付ける必要があります。
環境設定が完了したら、ソースをクローンしてFormspreeリポジトリのルートに移動します。 次に、
heroku apps:create [your project name]
次に
git push heroku
新しいプロジェクトは[あなたのプロジェクト名] .herokuapp.comで実行されます。
依存関係
FormspreeはPostgreSQLデータベースを必要とし、SendGridを使用して電子メールを送信します。 もしあなたがHerokuにデプロイしているなら、無料のHeroku PostgresデータベースとSendGridアカウントを走らせることができます
heroku addons:create heroku-postgresql:hobby-dev
heroku addons:create sendgrid
Formspreeの設定
Formspreeが正しく動作するために設定されるべき環境変数のリストについては、 formspree/settings.py
ファイルを見てください。
貢献する
FormspreeはGitHubで管理されるオープンソースプロジェクトです。 コミュニティからの寄付をすべて歓迎しますが、問題を開く前に寄稿者のガイドラインを確認してください。