Ruby on Rails 3: помощь с отправкой писем - PullRequest
0 голосов
/ 07 августа 2011

У меня есть следующие настройки для отправки электронной почты при регистрации:

Рельсы 3.0.7

ruby ​​1.9.2p180 (2011-02-18 редакция 30909) [x86_64-linux]

Установка плагина rails git: //github.com/collectiveidea/action_mailer_optional_tls.git

Mailer

class UserMailer < ActionMailer::Base

    def registration_confirmation(user)
    recipients  user.email
    from        "webmaster@example.com"
    subject     "Thank you for Registering"
    body        :user => user
    end
end

Контроллер:

   def create
    @user = User.new(params[:user])
    if @user.save
       UserMailer.deliver_registration_confirmation(@user)
       sign_in @user
       flash[:success] = "Welcome to ECE"
       redirect_to @user
    else
      @title = "Sign up"
      render 'new'
    end
   end

Вид:

Hi <%= @user.name %>, .....

Я получал ошибки соединения smtp и включил их в gemfile после поиска в Google.

Это решило ошибку

Gemfile

 gem 'rack-ssl', :require => 'rack/ssl'

Config / окружающая среда / development.rb

  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.middleware.insert_before ActionDispatch::Static, "Rack::SSL"
  config.action_mailer.smtp_settings = {
     :enable_starttls_auto => true,
     :address        => 'smtp.gmail.com',
     :authentication => :login,
     :port           => 587,
     :domain         => 'www.example.com',
     :name           => 'user@gmail.com',
     :password       => 'password',
   }

Проблема

раньше я получал 535-5.7.1 Имя пользователя и пароль не принимаются.

Теперь там написано:

Ошибка соединения SSL

Невозможно установить безопасное соединение с сервером. Это может быть проблема с сервером или может потребоваться сертификат аутентификации клиента, которого у вас нет.

Ошибка 107 (net :: ERR_SSL_PROTOCOL_ERROR): ошибка протокола SSL.

Есть предложения?

Ответы [ 2 ]

1 голос
/ 07 августа 2011

Я использую gmail для отправки электронных писем и никогда не настраивал дополнительные драгоценные камни.Это то, что я нахожусь в разработке.,Я думаю, что это не требуется, если вы используете имя пользователя, принадлежащее gmail.com.

1 голос
/ 07 августа 2011

В руководстве по рельсам есть пример Gmail.У них установлена ​​обычная аутентификация.Может быть, дать ему шанс?

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => 'baci.lindsaar.net',
  :user_name            => '<username>',
  :password             => '<password>',
  :authentication       => 'plain',
  :enable_starttls_auto => true  }

http://edgeguides.rubyonrails.org/action_mailer_basics.html

...