Странное поведение Пони Мэйл Синатра
Я могу отправлять почту со своего сайта, используя Sinatra и Pony mail. Проблема заключается в настройке тела для использования шаблона 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'
Таким образом, моя тема отображает корректность, но тело сообщения фактически возвращается как источник HTML для моей веб-страницы (как если бы я щелкнул источник просмотра правой кнопкой мыши)
Мой эрб шаблон такой
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 tempalte?
Я немного смущен здесь? Я неправильно настроил что-то в шаблоне erb?
Спасибо
1 ответ
Решение
Хорошо, так что для всех, кто сталкивался с такой же проблемой, мне нужно было сказать sinatra не использовать мой файл макета, поэтому при настройке
body = erb(:mail)
Это должно было быть
body = erb(:mail, layout: false )