2016-08-02 129 views
1
Net::SMTPFatalError (554 Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in domain settings. 

我在RoR应用程序中使用Heroku中的Mailgun插件。我正在尝试将我的个人Gmail帐户作为授权用户添加到沙盒域中。我使用的是可确认的设计,因此当新用户注册时,应该将默认电子邮件发送到他们提供的电子邮件。如下所示,用户正在成功创建,并发现要发送的电子邮件。 Mailgun似乎收到了必要的信息,但不相信我是被授权的?Mailgun沙盒域名不能正常工作

Sandbox is active

SQL (1.1ms) INSERT INTO "users" ("first_name", "last_name", "email", "encrypted_password", "created_at", "updated_at", "confirmation_token", "confirmation_sent_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING "id" [["first_name", "C"], ["last_name", "C"], ["email", "[email protected]"], ["encrypted_password", "$2a$10$k9CdjjFd7GzLcKJ.E4VNie27aJrQm3LnigLHlFSFKcd2qR2x11cQW"], ["created_at", "2016-08-01 22:05:30.331566"], ["updated_at", "2016-08-01 22:05:30.331566"], ["confirmation_token", "38f6d620e0e8277957ee85bbede77610cdbea448a79b9d07fc5998fdc3c780d3"], ["confirmation_sent_at", "2016-08-01 22:05:30.565564"]] 
2016-08-01T22:05:30.601828+00:00 app[web.1]: Rendered vendor/bundle/ruby/2.2.0/gems/devise-3.4.1/app/views/devise/mailer/confirmation_instructions.html.erb (9.0ms) 
2016-08-01T22:05:30.856455+00:00 app[web.1]: 2016-08-01T22:05:30.856470+00:00 app[web.1]: MyMailer#confirmation_instructions: processed outbound mail in 284.9ms 
2016-08-01T22:05:30.978021+00:00 app[web.1]: 
2016-08-01T22:05:30.978023+00:00 app[web.1]: Sent mail to [email protected] (121.4ms) 
2016-08-01T22:05:30.978026+00:00 app[web.1]: Date: Mon, 01 Aug 2016 22:05:30 +0000 
2016-08-01T22:05:30.978027+00:00 app[web.1]: From: [email protected] 
2016-08-01T22:05:30.978028+00:00 app[web.1]: To: [email protected] 
2016-08-01T22:05:30.978028+00:00 app[web.1]: Message-ID: <[email protected]e0db4.mail> 
2016-08-01T22:05:30.978029+00:00 app[web.1]: Subject: Confirmation instructions 
2016-08-01T22:05:30.978029+00:00 app[web.1]: Mime-Version: 1.0 
2016-08-01T22:05:30.978030+00:00 app[web.1]: Content-Type: text/html; 
2016-08-01T22:05:30.978030+00:00 app[web.1]: charset=UTF-8 
2016-08-01T22:05:30.978030+00:00 app[web.1]: Content-Transfer-Encoding: 7bit 
2016-08-01T22:05:30.978031+00:00 app[web.1]: 
2016-08-01T22:05:30.978031+00:00 app[web.1]: <p>Welcome [email protected]!</p> 
2016-08-01T22:05:30.978032+00:00 app[web.1]: 
2016-08-01T22:05:30.978034+00:00 app[web.1]: <p>You can confirm your account email through the link below:</p> 
2016-08-01T22:05:30.978034+00:00 app[web.1]: 
2016-08-01T22:05:30.978035+00:00 app[web.1]: <p><a href="http://peeraccomplish.heroku.com/users/confirmation?confirmation_token=zry54mp6sBgdFdfcjPYP">Confirm my account</a></p> 
2016-08-01T22:05:30.978036+00:00 app[web.1]: 
2016-08-01T22:05:30.979055+00:00 app[web.1]: (0.9ms) ROLLBACK 
2016-08-01T22:05:30.981993+00:00 app[web.1]: Completed 500 Internal Server Error in 753ms 
2016-08-01T22:05:30.983041+00:00 app[web.1]: 
2016-08-01T22:05:30.983042+00:00 app[web.1]:): 
Net::SMTPFatalError (554 Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in domain settings. 

我用directions on using Mailgun for Heroku - (复制并粘贴到我的配置/ production.rb):

ActionMailer::Base.smtp_settings = { 
    :port   => ENV['MAILGUN_SMTP_PORT'], 
    :address  => ENV['MAILGUN_SMTP_SERVER'], 
    :user_name  => ENV['MAILGUN_SMTP_LOGIN'], 
    :password  => ENV['MAILGUN_SMTP_PASSWORD'], 
    :domain   => ENV['MAILGUN_DOMAIN'], 
    :authentication => :plain, 
    } 
    ActionMailer::Base.delivery_method = :smtp 

我检查了环境变量,它们都显示准确。我还检查了端口587正在使用telnet上的heroku。

任何想法何去何从?

邮寄参考/ my_mailer.rb:

class MyMailer < Devise::Mailer 
    helper :application # gives access to all helpers defined within `application_helper`. 
    include Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url` 
    default template_path: 'devise/mailer' # to make sure that your mailer uses the devise views 

    default from: '[email protected]' 
end 

回答

1

我相信这是对Mailgun结束的问题。我确认我拥有与沙盒域相关联的授权用户。没有Sandbox域的好运,我注册了一个域,并在Heroku应用程序设置中更新了配置变量,并且没有更改上面的代码,发送了电子邮件。

+0

你能否请求指定你在config vars中所作的修改? –

+0

是的,需要添加至少一个域以使用mailguns沙箱域。 – zerocon

1

另一种可能性是,如果您输入了自定义域名,那么您的帐户中有两个域名。在这种情况下,在heroku上更改自定义域的配置变量。

4

我也有这个问题。问题是,当使用mailgun沙盒域名时,您必须预先注册您的收件人电子邮件才能发送电子邮件给它。为了做到这一点,请转到您的应用程序mailgun仪表板,单击“授权收件人”,如下图所示。

Where to go to add an authorized recipient