0

我是 ruby​​ on rails 的新手,我遵循 Daniel Kehoe 的 Learn-ruby-on-rails 一书。我已经在 Ubuntu 环境中正确设置了我的 sengrid 登录详细信息。echo $ SENDGRID_USERNAME 正确返回我的用户名。

但是,当我提交联系表单时,我仍然收到“已请求 SMTP-AUTH 但缺少用户名”错误。我尝试对登录详细信息进行硬编码,但仍然遇到相同的错误。我的配置设置是 smtp.sendgrid.net 在端口 587 上,我允许在开发中发送邮件。

请问我做错了什么。非常感谢。

我的 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 

结尾

而contacts_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 回答