Отказ в соединении при использовании Pony Mail & Sinatra
У меня много проблем с настройкой драгоценного камня Pony Mail для работы с моим сайтом Синатра (развернутым на Heroku). Я стремлюсь иметь базовую контактную форму, где посетитель может заполнить электронную почту и тему, свой адрес электронной почты и номер телефона, и эта форма будет отправлять информацию на электронную почту клиентов.
Вот код для формы:
<form action="/emailform" method="post">
<p>We'd love to hear from you!</p>
<input type="text" placeholder="Your Full Name" name="full_name">
<input type="text" placeholder="Your E-mail *required" name="email">
<input type="text" placeholder="Your Phone Number" name="phonenumber">
<input type="text" placeholder="Subject" name="subject">
<textarea rows="5" cols="30" name="comments" placeholder="Comments"></textarea>
<input type="submit" value="Submit" placeholder="Send">
</form>
Вот код для моего файла actions.rb (запрос POST) (3 точки представляют больше полей params/ form)
post '/emailform' do
Pony.mail to: 'xxx@gmail.com',
from: 'xxx@gmail.com',
subject: 'e-mail from: ' + params[:full_name] + params[:email],
body: "subject: " + params[:subject] + "phone-number: " + params[:phonenumber]...
redirect '/'
end
post '/homeevaluation' do
Pony.mail to: 'xxx@gmail.com',
from: 'xxx@gmail.com',
subject: 'Home Evaluation E-mail from: ' + params[:full_name],
body: 'phone number: ' + params[:phonenumber] + params[:comments]...
redirect '/'
end
Я получаю ошибку сейчас
Errno::ECONNREFUSED - Connection refused - connect(2):
Я вижу это, просматривая журналы Heroku.
Я боролся с этой проблемой некоторое время и не могу найти никакой полезной информации в Интернете. Если кто-то использовал драгоценный камень или знает другой способ выполнить ту же задачу, я хотел бы услышать это!
1 ответ
Это похоже на проблему с настройкой. Вы используете какое-то дополнение Heroku для электронной почты? Мы используем Sendgrid, поэтому нам нужны эти строки где-то в коде:
Pony.options[:via_options][:user_name] = ENV['SENDGRID_PASSWORD']
Pony.options[:via_options][:password] = ENV['SENDGRID_USERNAME']
Изменить: более подробные варианты
Pony.options = {
via: :smtp,
via_options: {
address: "smtp.sendgrid.net",
port: "587",
domain: "heroku.com",
authentication: :plain,
enable_starttls_auto: true,
user_name: "foo@heroku.com",
password: "foo"
}
}