2016-05-30 39 views
6

Mam aplikację Rails na Heroku. Ma niestandardową domenę i próbowałem skonfigurować wysyłanie wiadomości e-mail za pośrednictwem programu Mailgun. Zainstalowałem Mailgun jako dodatek do Heroku, a ja przejrzałem kroki, które Mailgun daje "zweryfikować" moją domenę niestandardową. Jeśli uruchomię Mailgun "Sprawdź DNS Records Now" wszystko wróci na zielono, a stan jest "Aktywny". Mogę nawet wysyłać wiadomości z mojej domeny niestandardowej za pośrednictwem wywołania curl. Jednak gdy próbuję wysłać wiadomość e-mail z mojej aplikacji Rails przy użyciu ActionMailer, otrzymuję: 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.Zweryfikowany e-mail nie wysyła przez Heroku/Mailgun

Dlaczego wydaje mi się, że używam "subdomeny Sandbox"? Oto co mam w environments/production.rb:

# Mailgun 
    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: 'my-custom-domain.com',            
    authentication: :plain,            
    } 
    ActionMailer::Base.delivery_method = :smtp        
    # Devise recoverable  
    config.action_mailer.default_url_options = { host: 'my-custom-domain.com' } 

Dla rozwoju używam Gmaila tak wiem, że czytanie odpowiedniego pliku konfiguracyjnego. Wszystkie vvy env są ustawione poprawnie. Parametr "z" również jest ustawiony poprawnie, widzę to moje logi ([email protected]) Czego mi brakowało? Czy jest coś, co nadal może się propagować, nawet jeśli status jest aktywny?

Dzięki!

+1

Czy dodałeś odbiorców swojej wiadomości e-mail do listy "Autoryzowani odbiorcy"? – Brian

+0

Miałem dokładnie ten sam problem - zrobiłem to, o czym wspomniałeś poniżej, zmieniłeś znaki heroku env, aby wskazać nowe poświadczenia, ale nadal poczta nie jest wysyłana. O dziwo, łańcuch "instrukcje potwierdzenia ponownego wysłania" działa dobrze. Jakiś pomysł jak to naprawić? – Anand

Odpowiedz

9

Tak więc okazało się, że po zweryfikowaniu mojej domeny niestandardowej utworzyłem drugą domenę pod moim kontem Heroku/Mailgun. Nadal miałem referencje z domeny xxx.mailgun.org (sandbox) w moich varach Heroku env. Gdy wymieniłem je na poświadczenia z mojej domeny niestandardowej, wszystko działało. (Ponieważ Heroku ustawił pierwszy zestaw env vars, nierozsądnie założyłem, że nowy zestaw zostanie automatycznie włączony.) Westchnienie ...

Dzięki za twoją pomoc Lyen.

+8

Mailgun/Heroku naprawdę powinien zapewnić lepsze instrukcje! – user3763682

+0

Czy można to dodać za pomocą Node.js zamiast ruby? – c0d3Junk13

3

Czy dodałeś odbiorców swojej wiadomości e-mail do listy "Autoryzowani odbiorcy" pod numerem https://mailgun.com/app/domains/sandbox_your_domain.mailgun.org?

enter image description here

Pamiętaj, aby dodać prawdziwy adres e-mail, który może odbierać wiadomości e-mail.

To dlatego mailgun wyśle ​​potwierdzenie e-mail z pytaniem, czy właściciel adresu e-mail naprawdę chce otrzymywać e-maile z mailgun.

+1

Chcę używać Mailgun do wysyłania wiadomości produkcyjnych. Nie chcę być w trybie piaskownicy. Jak się z tego wydostać? Udało mi się wysłać wiadomość przez curl bez "autoryzacji" tych odbiorców. Jak mogę to zrobić? – lostphilosopher

6

Aby dodać do odpowiedzi lostphilosopher, ostatnio rozwiązałem ten problem z domeną niestandardową MailGun osobiście.

Oto co pracował dla mnie:

Sytuacja: Po pomyślnym dodaniu domeny niestandardowej do Mailgun, mój mail do wysyłania/odbierania przestał działać

błędy: Po dodaniu niestandardowej domeny i weryfikacji DNS z Mailgun otrzymałam komunikaty o błędach, takich jak:

Net::SMTPFatalError: 554 Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in Account Settings.

Rozwiązanie: Zdaj sobie sprawę, że Heroku NIE automatycznie aktualizuje zmiennych konfiguracyjnych. Musisz ręcznie zaktualizować je wartościami dla nowej domeny.

  1. W MailGun - znajdź nowego ustawienia domeny MailGun pod pod https://mailgun.com/app/domains
  2. W Heroku - Akcja: Heroku> app> Ustawienia> Reveal Config Vars
  3. W Heroku - Aktualizacja następujące config vars
    • MAILGUN_DOMAIN
    • MAILGUN_SMTP_LOGIN
    • MAILGUN_SMTP_PASSWORD

Update Heroku Config Vars With New MailGun Domain Settings

I tak zgadzam - docs MailGun nie są najbardziej dokładne. Zwłaszcza jeśli chodzi o testowanie konfiguracji.

+0

co wchodzi w mailgun_domain –