Uygulamamda kayıt olurken kullanıcılara gönderilecek bir bildirim e-postasını geciktirmeye çalışıyorum. E-postalar, InitMailer
'u aradığım ActionMailer
kullanılarak gönderilir. İşleri geciktirmeye çalıştığım yol, collectiveidea'nın delayed_job
https://github.com/collectiveidea/delayed_job. Bunun için ben yöntemini initial_email
tanımlayan sonra handle_asynchronously
belirtmek görebilirsiniz: AncakRails 3.0 ActionMailer bir eşzamansız olarak çalıştırmak için bir gecikme nasıl kullanılır? Karşılaşılan ArgumentErrors
class InitMailer < ActionMailer::Base
default :from => "[email protected]"
def initial_email(user)
@user = user
@url = "http://www.blahblahblah.com"
mail(:to => user.email,
:subject => "Welcome to my website!"
)
end
handle_asynchronously :initial_email
end
, benim günlük dosyasında "delayed_job.log"
bir argüman hatayla karşılaştığınızda:
Class#initial_email failed with ArgumentError: wrong number of arguments (1 for 0) - 5
failed attempts
, e-postası Ayrıca, ben gecikmeden kodumu kurmak, e-postalar w
@user = InitUser.new(params[:init_user])
InitMailer.delay.initial_email(@user)
: hattını kullanan bir denetleyici gönderilen ere sorunum olmadan gönderildi (benim uygulamayı yavaşlatarak gmail sunucularını bekletmesi durumu hariç)
Burada hatalara neden oluyorsunuz? Gecikmeli postayı düzgün bir şekilde göndermek için nasıl alabilirim?
teşekkür ederiz! Bu benim sıkıntılarımın cevabı. Keşke yoU gibi biriyle çalışsaydım! – geb2011
Müthiş. Sadece bunu çözmek için 2 gün boşa harcadım (ayrıca bir arızaya neden olan bir engelle ilgili bir sorun vardı ve Gmail, geliştirme ortamımdan e-postaları kabul etmek istemiyordu). – Clay
Geliştirme ortamı için bile, Gmail yerine e-posta göndermek için Mandrill'i kullanırdım. – Dean