Sendgrid返回请求的SMTP-AUTH但缺少用户名

时间:2016-04-21 12:08:07

标签: ruby-on-rails railsapps learn-ruby-on-rails

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

结束

1 个答案:

答案 0 :(得分:0)

问题产生于config / enviroments / development.rb文件中的遗漏 我换了

 user_name: Rails.application.secrets.email_provider

使用:

 user_name: Rails.application.secrets.email_provider_username

问题解决了