0

Rails 4で非同期メールを送信するにはどうすればよいですか? つまり、連絡先フォームの [送信] ボタンをクリックしても、ページは更新されませんが、電子メールが検証されて送信され、ユーザーにメッセージが表示されます。

私はaction_mailer正しく構成し、電子メール アドレスをパラメーターとしてContactForm受け取る 1 つのアクションを持つメーラーを持っています。contact

結果として、

ContactForm.contact("test@gmail.com").delivers #=> delivers email perfectly 

しかし、それはコマンドラインで機能しています。リンクでこれを行う正しい方法が本当にわかりません。つまり、 にナビゲートするボタンを作成して、send_email次のようなルートを作成できます。

get 'send_email', to: 'contact#sendemail'

次に、上記のように、このメソッド チェーンを含む sendemail アクションを作成します。しかし、これは非同期ではありません。また、メールを送信する前にメールのフィールドを検証する方法や、無効なフィールドを強調表示する方法もわかりません。

Ajax と JSON の応答は、フィールドを強調表示するための鍵ですか? 検証はどうですか?

resque_mailerは、非同期メールを送信する良い方法のようです。しかし、バニラの Rails で ajax がうまく処理されているのに、なぜこの外部の gem が必要なのでしょうか?

4

2 に答える 2

0

このRailscasts Episode #171では、 DelayedJobを使用してバックグラウンド プロセスを使用してメールを送信する方法を示しています。

于 2013-10-25T16:14:41.580 に答える