2015-05-14 54 views
0

我試圖配置類似教程,但仍無法發送電子郵件。在控制檯,它顯示在下面的圖片:無法通過Mailer Rails發送電子郵件

enter image description here

我在配置文件\環境\ development.rb和production.rb已配置如下:

config.active_record.dump_schema_after_migration = false 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    address:    'smtp.gmail.com', 
    port:     587, 
    domain:    'gmail.com', 
    user_name:   'gmail username', 
    password:    'password', 
    authentication:  'plain', 
    enable_starttls_auto: true } 

應用\寄件人\ user_mailer文件.RB:

class UserMailer < ApplicationMailer 

    def registration_confirmation(user) 
    mail(:to => user.email,:subject => "registered") 
    end 
end 

應用程序\郵寄\ application_mailer.rb

class ApplicationMailer < ActionMailer::Base 
    default from: "[email protected]" 
    layout 'mailer' 
end 

應用程序\控制器\ users_controller.rb

def create 
    @user = User.new(user_params) 
    UserMailer.registration_confirmation(@user).deliver 
    respond_to do |format| 
     if @user.save 

     format.html { redirect_to @user, notice: 'User was successfully created.' } 
     format.json { render :show, status: :created, location: @user } 
     else 
     format.html { render :new } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

它運行沒有任何錯誤已經顯示,但是當我檢查Gmail,它是無法接收任何郵件。

+3

如果您使用的是最新的rails version 4.2,您需要將.deliver替換爲.deliver_now –

+1

它看起來仍然使用'delivery_method =:test'而不是'delivery_method =:smtp' - 您是否重新啓動了服務器你改變了development.rb文件? –

+0

@GauravGupta當我將其更改爲「UserMailer.registration_confirmation(@user).deliver_now」並將此行添加到配置文件,如下所示:「 :openssl_verify_mode =>'none', :ssl => true, :tls => true}「它顯示」UsersController中的OpenSSL :: SSL :: SSLError#create「 –

回答

1

您是否在您的development.rb文件中提供了正確的電子郵件地址和密碼?

還有一件事: 您正在使用此ID「[email protected]」發送電子郵件,請使用此電子郵件在gmail中登錄。只是爲了確保您的帳戶一切正常。可能是您的帳戶進行身份驗證時遇到的某種問題。