0

Sinatra と Pony メールを使用して、自分のサイトからメールを送信できます。問題は、本文を erb テンプレートを使用するように設定することです。

だから私の設定はそのように設定されています

post '/' do
from = params[:name]
subject = "#{params[:name]} has contacted you"
body = erb(:mail)

Pony.mail(
:from => from,
:to => ENV["EMAIL_ADDRESS"],
:subject => subject,
:body => body,
:via => :smtp,
:via_options => {
:address              => 'smtp.gmail.com',
:port                 => '587',
:enable_starttls_auto => true,
:user_name            => ENV["USER_NAME"],
:password             => ENV["PASSWORD"],
:authentication       => :plain, 
:domain               => "localhost.localdomain" 
 })

flash[:notice] = "Thanks for your email. I will be in touch soon."
redirect '/success' 

したがって、件名は正しくレンダリングされますが、メッセージの本文は実際には Web ページの html ソースとして返されます (ソースを右クリックしたかのように)。

私のerbテンプレートはそうです

Hello Rich,

Seems as if you have recieved an email from <%= params[:name] %> via your website.

Their email address is <%= params[:email] %>, this is what they said.

<%= params[:message] %>

では、なぜ体はアーブテンパルテをレンダリングしないのですか?

私はここで少し混乱していますか?erb テンプレート内で何かを間違って設定しましたか?

ありがとう

4

1 に答える 1

1

わかりましたので、同じ問題を抱えている他の人のために、sinatraにレイアウトファイルを使用しないように指示する必要がありました。

body = erb(:mail)

する必要があった

body = erb(:mail, layout: false )
于 2013-07-02T09:23:55.153 に答える