Czy istnieje prosty sposób na powiadomienie firmy Devise o wysłaniu wszystkich wiadomości e-mail za pośrednictwem delayed_job?Wysyłanie opóźnionej wiadomości e-mail z urządzenia
Odpowiedz
Alternatywnie, zamiast używania opóźnionego :: Mailer gem, można łatwo wdrożyć i wykorzystywać własne ActionMailer "Sposób dostawy", który ...
- przechwytuje dostarczania poczty od ActionMailer
- przechowuje wiadomości e-mail w tabeli (opcjonalnie)
- tworzy Opóźniony :: Praca, która odwołuje się przechowywanymi e-
- dostarcza zapisany email, gdy praca jest wykonywana z opóźnieniem
Czy coś wzdłuż linii:
# in config/application.rb
ActionMailer::Base.add_delivery_method :queued, Mail::QueuedDelivery
# in config/environment.rb (or one of the config/environments/*.rb files)
config.action_mailer.delivery_method = :queued # ie. Mail::QueuedDelivery
# in lib/mail/queued_delivery.rb
module Mail
class QueuedDelivery
def initialize(values = {})
# (optional)
end
def deliver!(mail)
email = Email.create!(:delivery_handler => mail.delivery_handler.name, :message => mail.to_s)
Delayed::Job.enqueue Jobs::Email::DeliverEmail.new(email.id)
end
end # class QueueDelivery
end # module Mail
Opóźnione :: Praca trzeba realizować będzie potem ...
- odzyskać przechowywanych e-mail z bazy danych -
email = ::Email.find_by_id(email_id)
- dostarczyć e-mail za pośrednictwem poczty gem -
Mail::Message.new(email.message).deliver
to jest to ... mam nadzieję, że to pomoże!
Nie mam pojęcia, czym jest Devise, ale sądzę, że jest to klejnot innej firmy, którego nie chcesz modyfikować. Wypróbuj delayed_job_mailer. Możesz rozszerzyć program pocztowy Devise o małpkę, która łata je w celu użycia delayed_job.
class SomeExistingMailer
include Delayed::Mailer
end
lub jeśli chcesz wysłać wszystkie e-maile za pośrednictwem aplikacji opóźnionej pracy domyślnie:
# config/initializers/delayed_mailer.rb
class ActionMailer::Base
include Delayed::Mailer
end
Czy to działa? Szukam tego samego rozwiązania – AnApprentice
Wypróbowałem twoją drugą sugestię, która byłaby niesamowita, gdyby zadziałała, ale dostał błąd "/Users/bhellman/Sites/cline/config/initializers/delayed_mailer.rb:3: uninitialized constant Delayed: : Mailer (NameError) " – AnApprentice
Wydaje mi się, że klej Delayed mailer nie został załadowany. Czy określono go w Gemfile, ostatecznie wymagają go w environment.rb – gertas
Okazało się, że żaden z powyższych nie zadziałał u mnie. Używam Devise 2.0.4 i Rails 3.2.2 z delayed_job_active_record 0.3.2
Sposób, w jaki program de facto mówi o zrobieniu czegoś takiego w komentarzach w kodzie, ma na celu zastąpienie metod w klasie User. Tak więc, jak mam rozwiązać go tak, i to działa doskonale:
app/models/User.rb
def send_on_create_confirmation_instructions
Devise::Mailer.delay.confirmation_instructions(self)
end
def send_reset_password_instructions
Devise::Mailer.delay.reset_password_instructions(self)
end
def send_unlock_instructions
Devise::Mailer.delay.unlock_instructions(self)
end
Obecnie projekt Devise-asynchroniczny który osiąga dokładnie to:
- 1. Wysyłanie wiadomości "w imieniu"
- 2. Wysyłanie wiadomości e-mail
- 3. wysyłanie wiadomości e-mail z wieloma załącznikami
- 4. wysyłanie wiadomości z pliku wsadowego
- 5. Wysyłanie wiadomości e-mail z użyciem nodemailera
- 6. Wysyłanie wiadomości między komputerami
- 7. Wysyłanie wielu wiadomości e-mail z codeigniter
- 8. Wysyłanie wiadomości e-mail na konto Yahoo
- 9. Inicjowanie opóźnionej cechy
- 10. Wysyłanie wiadomości e-mail z szablonem za pomocą php
- 11. Wysyłanie wiadomości e-mail - MFMailComposeResult
- 12. Wysyłanie wiadomości Firebase NoSuchMethodError.zzUr wyjątek
- 13. wysyłanie wiadomości e-mail z aplikacji do szybkiego osx
- 14. Wysyłanie wiadomości do unikalnego gniazda
- 15. Wysyłanie wiadomości e-mail za pomocą WordPressa
- 16. Problemy z Django wysyłanie wiadomości e-mail przez smtp.gmail.com
- 17. wysyłanie wiadomości e-mail, jeśli aplikacja pozwala
- 18. Wysyłanie wiadomości e-mail z witryny Asp.Net za pośrednictwem gmaila
- 19. Wysyłanie wiadomości e-mail z Django za pośrednictwem hostowanego SMTP
- 20. Wysyłanie wiadomości e-mail z mojej domeny za pomocą SendGrid
- 21. Wysyłanie zamówionej, masowej wiadomości e-mail
- 22. dołączanie pliku do wiadomości e-mail z folderu/danych urządzenia
- 23. Android DDMS - wysyłanie wywołań do rzeczywistego urządzenia
- 24. Wiosenne uruchamianie - wysyłanie wiadomości e-mail z logbackami
- 25. Wysyłanie wiadomości e-mail Z GitLab nie działa poprawnie
- 26. Wysyłanie wiadomości e-mail z firmy Swift 3
- 27. Wysyłanie wiadomości e-mail w programie Jenkins kończy się niepowodzeniem.
- 28. wysyłanie wiadomości e-mail przy użyciu szablonów w codeigniter
- 29. Wysyłanie wiadomości SMS do rzeczywistego urządzenia testowego (nie emulatora) za pomocą DDMS lub instancji emulatora
- 30. Wysyłanie wiadomości w formacie PHP mail() do spamu GMAIL
http://stackoverflow.com/questions/4125564/rails-devise-delay ed-job – Zabba