フォームが送信された後、1 人 (または複数の人) にメールを送信しようとしているようです。そのフォームからデータベースに情報を保存している可能性があります。Padrino メーラーの使い方に少し混乱していると思います。明確にさせてください: Padrino のメーラー機能を使用して完全な本文のメールを送信するには、Padrino Mailer を作成する必要があります (これについては以下で概説しています)。次に、呼び出し時に変数を渡すことができるように、そのメーラーを構成する必要があります。これらの変数はビューで使用でき、メーラーはメールを送信する前にメール本文にレンダリングします。これは、やろうとしているように見えることを達成するための 1 つの方法であり、おそらく最も簡単です。この手順の詳細については、「メーラーの使用法」を参照してください。あなたはあなたの質問で提供しました。以下に、お客様のニーズに合わせて調整された使用例の概要を示します。
指示
このコード サンプルをまとめて、自分の AWS アカウントに対してテストしました。本番環境で動作するはずです。
ファイルに以下を含めますapp/app.rb
(既に行っています)。
set :delivery_method, :smtp => {
:address => 'email-smtp.us-east-1.amazonaws.com',
:port => 587,
:user_name => 'SMTP_KEY_HERE',
:password => 'SMTP_SECRET_HERE',
:authentication => :plain,
:enable_starttls_auto => true
}
次に、でメーラーを作成しますapp/mailers/affiliate.rb
。
# Defines the mailer
DemoPadrinoMailer.mailer :affiliate do
# Action in the mailer that sends the email. The "do" part passes the data you included in the call from your controller to your mailer.
email :send_email do |name, email|
# The from address coinciding with the registered/authorized from address used on SES
from 'your-aws-sender-email@yoursite.com'
# Send the email to this person
to 'recipient-email@yoursite.com'
# Subject of the email
subject 'Affiliate email'
# This passes the data you passed to the mailer into the view
locals :name => name, :email => email
# This is the view to use to redner the email, found at app/views/mailers/affiliate/send_email.erb
render 'affiliate/send_email'
end
end
アフィリエイト メーラーのsend_email
ビューは次の場所にapp/view/mailers/affiliate/send_email.erb
あり、次のように表示されます。
Name: <%= name %>
Email: <%= email %>
最後に、フォーム送信を受け入れるメソッド (およびコントローラー) の内部からメーラーを呼び出すことができます。文字列は必ず実際のフォーム データに置き換えてください。この例では、POSTedcreate
アクションを使用しましたが、これはデータを保存しませんでした (したがって、偽のデータを含む文字列)。
post :create do
# Deliver the email, pass the data in after everything else; here I pass in strings instead of something that was being saved to the database
deliver(:affiliate , :send_email, "John Doe", "john.doe@example.com")
end
これがあなたの Padrino の旅に役立つことを心から願っています。Stack Overflow コミュニティへようこそ!
心から、
ロベルト・クルベンスピー