0
我試圖配置類似教程,但仍無法發送電子郵件。在控制檯,它顯示在下面的圖片:無法通過Mailer Rails發送電子郵件
我在配置文件\環境\ 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,它是無法接收任何郵件。
如果您使用的是最新的rails version 4.2,您需要將.deliver替換爲.deliver_now –
它看起來仍然使用'delivery_method =:test'而不是'delivery_method =:smtp' - 您是否重新啓動了服務器你改變了development.rb文件? –
@GauravGupta當我將其更改爲「UserMailer.registration_confirmation(@user).deliver_now」並將此行添加到配置文件,如下所示:「 :openssl_verify_mode =>'none', :ssl => true, :tls => true}「它顯示」UsersController中的OpenSSL :: SSL :: SSLError#create「 –