Когда я отправляю простую форму с помощью Синатры, она показывает эту ошибку:
Net :: SMTPAuthenticationError at / contacts 535-5.7.8 Имя пользователя и пароль не принимаются Ruby Sinatra
Чтоверсии программ:
- ОС: Windows 7/64
- Версия Ruby: ruby 2.6.3p62 (ревизия 2019-04-16 67580) [x64-mingw32]
Драгоценные камни, включенные в комплект:
- backports (3.15.0)
- bundler (2.0.2)
- mail (2.7.1)
- mini_mime (1.0.2)
- multi_json (1.14.1)
- пони (1.13.1)
- стойка (1.5.2)
- стойка-защита (1.5.1)
- стойка-тест (1.1.0)
- sinatra (1.4.4)
- sinatra-contrib (1.4.7)
- tilt (1.4.1)
А вот мой код в приложении Синатры:
# app.rb
require 'rubygems'
require 'sinatra'
require 'sinatra/reloader'
require "pony"
get '/' do
erb "Hello! <a href=\"https://github.com/bootstrap-ruby/sinatra-bootstrap\">Original</a> pattern has been modified for <a href=\"http://rubyschool.us/\">Ruby School</a>"
end
get "/contacts" do
erb :contacts
end
post "/contacts" do
login = params[:login]
message = params[:message]
Pony.mail({
:to => '***1***@gmail.com', # real mail 1
:from => '***2***@gmail.com', # real mail 2
:via => :smtp,
:subject => "New message from user: #{login}",
:body => "#{message}",
:via_options => {
:address => 'smtp.gmail.com',
:port => '587',
:enable_starttls_auto => true,
:user_name => '***2***@gmail.com', # real mail 2
:password => '**********',
:authentication => :plain, # :plain, :login, :cram_md5, no auth by default
:domain => "gmail.com" # the HELO domain provided by the client to the server
# :openssl_verify_mode => 'none'
}
})
erb :contacts
end
А вот мой код вконтакты sinatra.erb:
<body>
<h2> Feedback </h2>
<form action="/contacts" method="POST">
<div class="form-group">
<label>Your name:</label>
<input name="username" type="text" class="form-control" placeholder="Your name">
<label for="comment">Text of the appeal:</label>
<textarea name="message" class="form-control" rows="5" placeholder="Text of the appeal"></textarea>
</div>
<button type="submit" class="btn btn-primary">Send:</button>
</form>
Backtrace:
C:/Ruby26-x64/lib/ruby/2.6.0/net/smtp.rb in check_auth_response
raise SMTPAuthenticationError, res.message
C:/Ruby26-x64/lib/ruby/2.6.0/net/smtp.rb in auth_plain
check_auth_response res