2013-06-01 46 views
2

我设置了邮件的Heroku与和SendGrid碰上以下错误试图发送使用Rails电子邮件:错误“默认从”值导致SMTP错误在Heroku与SendGrid

Net::SMTPFatalError (550 Cannot receive from specified address <[email protected]>: Unauthenticated senders not allowed 
2013-06-01T10:52:34.767516+00:00 app[web.1]: app/controllers/api/v1/post_controller.rb:84:in `reply' 

此域名“[email protected]”来自于“默认的”场在我梅勒:

class NotificationMailer < ActionMailer::Base 
    default from: "[email protected]" 

    def post_notification_email(params) 
    # Send mail here 
    end 
end 

我最大的问题是,我不知道究竟是什么在这里练习I.这应该是我的电子邮件地址?它是否必须是我的域名?这是我的Heroku电子邮件吗?我的SendGrid电子邮件?不知道做什么使SendGrid开心。删除这条线,并希望能够填补一些东西,这也会导致错误。我卡住了。其他人使用他们的“默认来源”?

还有一件,万一它很重要:这一切都还在开发中,所以我没有把它连接到一个域。我也没有真正创建SendGrid帐户,只是将SendGrid加载项添加到我在Heroku上的应用程序中。

更新:张贴生产我的行动邮件配置:

ActionMailer::Base.smtp_settings = { 
    :address  => 'smtp.sendgrid.net', 
    :port   => '25', 
    :authentication => :plain, 
    :user_name  => ENV['SENDGRID_USERNAME'], 
    :password  => ENV['SENDGRID_PASSWORD'], 
    :domain   => 'domain.com', 
    :enable_starttls_auto => true 
    } 
+0

从地址没有问题。该错误消息意味着SendGrid拒绝您的凭据或身份验证方法。你可以发布你的ActionMailer配置来制作吗? – Swift

+0

刚刚将我的邮件程序配置发布到问题中。我仍然对这一切感到困惑,我不确定问题出在哪里。上述对我来说看起来很好,凭据似乎自动填充。 – hendrikbeck

+0

如果您运行'heroku config',您会在该列表中看到您的SendGrid用户名和密码?我的猜测是你的凭证没有正确配置。 – Swift

回答

0

验证您的action_mailer配置正确,(配置/ production.rb):

# Sendgrid 
    config.action_mailer.smtp_settings = { 
    address: "smtp.sendgrid.net", 
    port: 25, 
    domain: "example.com", 
    authentication: "plain", 
    user_name: ENV["SENDGRID_USERNAME"], 
    password: ENV["SENDGRID_PASSWORD"] 
    } 

不要忘了改域名参数! 添加sendgrid到你的Heroku应用程序,如下(在你的终端):

heroku addons:add sendgrid:starter 

提交更改和应用程序部署到Heroku的。您应该能够发送来自您之前定义的域名的电子邮件。

+0

我已经添加了SendGrid并将它全部部署到Heroku。我没有改变“域”参数之前,虽然杜,这就是它,但我仍然遇到同样的问题。我应该填写哪个域名?我自己网站的域名?或“* .herokuapp.com”?或者它是什么? – hendrikbeck

+0

定义你的英雄域名:“your-app.herokuapp.com” – dpaluy

+0

对不起@dpaluy,我刚刚意识到我从来没有回复过这个。我从文档和你所描述的内容开始重新开始,并且让它起作用。坏消息是我仍然不确定实际的问题是什么。但是,非常感谢您为我指出正确的方向,以便检查和注意什么! – hendrikbeck