Diese Zeile in test.rb weist ActionMailer an, keine E-Mails zu senden:
%Vor%Stattdessen werden sie im Array ActionMailer :: Base.deliveries gesammelt.
Sie müssen eine Staging-Umgebung für Ihre Anwendung einrichten und Heroku so konfigurieren, dass diese Umgebung in Ihrer Staging-Instanz verwendet wird.
Anwendungen, die das E-Mail-Juwel verwenden (einschließlich Rails & gt; = 3.0-Projekte), können das Juwel safety_mailer verwenden. Geben Sie eine Domäne (oder einen Satz von Domänen oder ein Zauberwort in der E-Mail-Adresse) an, zu der die E-Mail weitergeleitet werden darf. Eine E-Mail an alle anderen Domänen wird automatisch gelöscht.
Fügen Sie den Edelstein zu Ihrem Gemfile
hinzu und geben Sie Gruppen an (wahrscheinlich keine Produktion), um ihn aufzunehmen.
Vergessen Sie nicht, bundle install
zu installieren
Konfigurieren Sie in Ihrer Umgebungsdatei config/environments/development.rb
und einige reguläre Ausdrücke.
... und jetzt, E-Mail an [email protected], [email protected], [email protected] alle gesendet werden und E-Mails an andere Empfänger (wie die echten Benutzer in der Produktionsdatenbank, die Sie auf einen Testserver kopiert haben) werden unterdrückt.
Sie könnten an mailtrap.io interessiert sein ( Haftungsausschluss: Ich bin mit diesem Produkt verbunden). Es ist ein perfektes Werkzeug, um E-Mail-Lieferungen in Entwicklung und Produktion zu testen. Alles, was Sie tun müssen, ist, mailtrap.io als SMTP-Server in Ihrer Staging-Umgebung config:
zu setzen %Vor%Wenn all diese Test-E-Mails in staging env gesendet werden, werden sie in mailtrap zur Ansicht und Freigabe gespeichert. Aber keiner von ihnen wird an die echten Adressen gesendet. Sie können es auch in der Entwicklung verwenden. Und übrigens - es ist völlig kostenlos!
setze dies in deine Datei environment.rb
%Vor%Es sollte aufhören, E-Mails an den Mail-Server zu senden, ich denke, es gibt eine: log-Option, aber ich habe es nicht ausprobiert.
Ich sehe Leute vorschlagen, Mailtrap.io zu verwenden. Eine gute Alternative ist Debug-Mail . Die Verwendung ist ziemlich einfach.
Wir verwenden maildev , das Sie lokal installieren können. Ideal für Entwicklungs- und Staging-Umgebungen, einfach in einer Vielzahl von Technologie-Stacks zu installieren.
Abhängig von Ihrer Auswahl
Wenn Sie eine bequeme Möglichkeit zum Empfangen von E-Mails zum Debuggen usw. wünschen, empfehle ich https://github.com/fgrehm/letter_opener_web
, die E-Mails lokal speichert und eine URL zum Durchsuchen der gesendeten E-Mails bereitstellt. Es wird keine E-Mail gesendet, und Sie können die Ausgabe in Ihrem Browser sehr bequem sehen
Wenn Sie E-Mail-Dateien mit Ihren E-Mail-Clients öffnen möchten, sollten Sie einen :file
Adapter für ActionMailer (konfigurieren in config/environments/your_env.rb
)
Wenn Sie eine echte produktionsähnliche Umgebung wünschen, würde ich vorschlagen, einen E-Mail-Interceptor zu konfigurieren, der das TO / CC / BCC in ein echtes Postfach Ihrer Wahl umschreibt, damit Sie Ihren ursprünglichen ActionMailer-Adapter behalten und testen können
%Vor%Tags und Links ruby-on-rails heroku