0

私は Ruby on Rails を初めて使用し、Daniel Kehoe による Learn-ruby-on-rails という本に従っています。Ubuntu 環境で sengrid ログインの詳細を正しく設定しました。echo $ SENDGRID_USERNAME は自分のユーザー名を正しく返します。

ただし、連絡先フォームを送信すると、「SMTP-AUTH が要求されましたが、ユーザー名がありません」というエラーが表示されます。ログインの詳細をハードコーディングしようとしましたが、それでも同じエラーが発生します。私の構成設定はポート587のsmtp.sendgrid.netで、開発中のメールの送信を許可しています。

私が正しくないことをしてください。どうもありがとう。

私の user_mailer.rb は次のとおりです。

class UserMailer < ActionMailer::Base
#default :from => "do-not-reply@example.com"

def contact_email(contact)
    @contact = contact
    mail( to: => Rails.application.secrets.owner_email, from: => @contact.email, subject: => "Website Visit")
end 

終わり

contact_controller.rb を以下に示します。

class ContactsController < ApplicationController

def new 
    @contact = Contact.new

end

def create
    @contact = Contact.new(secure_params)
    if @contact.valid?
       UserMailer.contact_email(@contact).deliver_now
        #TODO send message
        flash[:notice] = "Message sent from #{@contact.name}."
        redirect_to root_path
    else
        render :new
    end 
end

private 

def secure_params
    params.require(:contact).permit(:name, :email, :content)
end

終わり

4

1 に答える 1

0

問題は、私が置き換えた config/enviroments/development.rb ファイルの省略から発生しました

 user_name: Rails.application.secrets.email_provider

と:

 user_name: Rails.application.secrets.email_provider_username

そして問題は解決しました

于 2016-04-25T15:39:53.593 に答える