2016-08-02 26 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. 

Ich benutze das Mailgun Addon mit Heroku in einer RoR-Anwendung. Ich versuche, die Sandbox-Domain mit meinem persönlichen Google Mail-Konto zu verwenden, das als autorisierter Benutzer hinzugefügt wurde. Ich verwende "Gerät bestätigen". Wenn sich ein neuer Benutzer anmeldet, sollte eine Standard-E-Mail an die von Ihnen angegebene E-Mail gesendet werden. Wie unten zu sehen ist, wird der Benutzer erfolgreich erstellt und die zu sendende E-Mail gefunden. Mailgun scheint die notwendigen Informationen zu erhalten, glaubt aber nicht, dass ich autorisiert bin?Mailgun Sandbox Domain funktioniert nicht

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. 

Ich benutzte die directions on using Mailgun for Heroku - (kopiert und in meiner config/production.rb eingefügt):

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 

Ich habe die Umgebungsvariablen überprüft und sie alle genau erscheinen. Ich habe auch überprüft, Port 587 arbeitet mit Telnet auf Heroku.

Irgendwelche Ideen wohin von hier gehen?

Mailer/my_mailer.rb Referenz:

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 

Antwort

1

Ich glaube, das Problem Ende auf Mailgun gehörte. Ich habe bestätigt, dass ein autorisierter Benutzer mit der Sandbox-Domäne verknüpft ist. Da ich kein Glück mit der Sandbox-Domain hatte, habe ich eine Domain registriert und die Konfigurations-Vars in den Heroku-App-Einstellungen aktualisiert, und ohne Änderungen am obigen Code wurden E-Mails gesendet.

+0

können Sie Vorwände die Änderungen geben Sie in den Konfigurations Vars gemacht? –

+0

ja muss mindestens eine Domain hinzugefügt werden, um die Mailguns-Sandbox-Domain zu verwenden. – zerocon

1

Eine andere Möglichkeit ist, dass Sie zwei Domains in Ihrem Konto haben, wenn Sie Ihre benutzerdefinierte Domain eingegeben haben. In diesem Fall ändern Sie die Konfigurationsvariablen Ihrer benutzerdefinierten Domain auf dem Heroku.

4

Ich hatte dieses Problem auch. Das Problem ist, wenn Sie die Mailgun-Sandbox-Domain verwenden, müssen Sie Ihre Empfänger E-Mail-Vorregistrierung, um E-Mails zu senden. Um dies zu tun, gehen Sie zu Ihrem App Mailgun Dashboard, klicken Sie auf "autorisierte Empfänger", wie das Bild unten.

Where to go to add an authorized recipient