ActionMailer 3 ohne Reling
Schreibe ich ein kleines Ruby-Programm, dass zu ziehen Einträge aus einer Datenbank und senden Sie eine HTML-E-Mails täglich. Ich bin versucht, ActionMailer 3.0.3 für diese, aber ich ' m laufen, um zu Fragen. Alle, die die Suche, die ich bisher gemacht habe auf mit ActionMailer außerhalb der Schienen gilt für Versionen vor version 3. Könnte mir jemand zeigen in die richtige Richtung, wo Sie zu finden Ressourcen, wie dies zu tun? Hier, wo ich bin so weit auf meinem mailer-Datei:
# lib/bug_mailer.rb
require 'action_mailer'
ActionMailer::Base.delivery_method = :file
class BugMailer < ActionMailer::Base
def daily_email
mail(
:to => "[email protected]",
:from => "[email protected]",
:subject => "testing mail"
)
end
end
BugMailer.daily_email.deliver
Bin ich auf jeden Fall stecken, wo meine Ansichten. Jeder Versuch, den ich gemacht habe, zu sagen, ActionMailer, wo meine Vorlagen sind gescheitert.
Denke ich, sollte ich auch Fragen, ob es einen anderen Weg zu gehen über die Erreichung dieses Programm. Im Grunde mache ich alles von Grund an dieser Stelle. Offensichtlich, was macht Rails genial ist es Konvention, so wird versucht, Teile von Schienen, die auf Ihre eigenen für eine Verschwendung von Zeit? Gibt es eine Möglichkeit, um die Rails-Umgebung wie ohne die Erstellung eines kompletten Rails-app?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach einigen schweren Debuggen, fand ich, wie es zu konfigurieren.
Datei mailer.rb
Datei mailer/daily_email.html-Code.erb
Datei mailer/daily_email.text.erb
Schöne Frage! Es hat mir geholfen, ein bisschen mehr zu verstehen, wie Rails 3 funktioniert 🙂
app/views
, aber ich habe keine Ahnung wo sollte ich meine Ansichten. Jetzt meine Sichtweise ist wie folgt:lib/bug_mailer/daily_email.html.erb
. Irgendwelche Ideen?bugs_email/lib/bug_mailer.rb
. Die Aussicht ist hier:bugs_email/lib/bug_mailer/daily_email.html.erb
. So, es sei denn, ich bin etwas fehlt (was möglich ist!) Ich bin so eingerichtet, dass Beispiel.mail()
Aufruf der Methode in meinemdaily_email
Methode:body => File.read(File.dirname(__FILE__) + "/../views/bug_mailer/daily_email.html.erb")
. So, jetzt, ich bin cookin' mit gas!Es dauerte eine Weile, bis diese zum arbeiten in der (nicht-)Rails 4. Ich vermute, es ist nur, weil ich ':require => false,' alles über mein Gemfile, aber ich brauchte Folgendes hinzufügen, damit es funktioniert:
Ohne den obigen code, ich habe immer eine NoMethodError mit
undefined method 'assign_controller'
.Danach konfigurierte ich ActionMailer wie folgt:
Die Vorlagen gehen in
lib/<GEM_NAME>/views/mailers/<MAILER_CLASS_NAME>/<MAILER_ACTION_NAME>.erb
(MAILER_ACTION_NAME ist die öffentliche Instanz-Methode von deiner mailer-Klasse, die Sie rufen Sie die E-Mail senden).Schließlich, vergessen Sie nicht, setzen Sie diese in Ihrem
spec_helper
: