GMail hesabıyla posta gönderen bir mailerim var ve bu ActionMailer uygulamasının verdiğim kimlik bilgileriyle GMail'in SMTP sunucusunda oturum açabileceğini test etmek istiyorum. Bunu test etmenin en iyi yolu nedir?Rails mailler kimlik bilgilerinin geçerli olduğunu nasıl test ediyorsunuz?
cevap
Tam yığın bir çözüm değildir, ancak doğrudan doğruya Net :: SMTP kullanarak sunucu kimlik doğrulamasının doğru olup olmadığını kontrol edebilirsiniz. ActionMailer e-postalar göndermek 3 kullanımlarını Raylar Posta mücevher (sizin ActionMailer.smtp_settings birlikte) şöyle Mail kullanıyor:
#line 96 of mail-2.2.7/lib/mail/network/delivery_methods/smtp.rb
smtp = Net::SMTP.new(settings[:address], settings[:port])
if settings[:enable_starttls_auto]
smtp.enable_starttls_auto if smtp.respond_to?(:enable_starttls_auto)
end
smtp.start(settings[:domain], settings[:user_name], settings[:password],
settings[:authentication]) do |smtp|
smtp.sendmail(message, envelope_from, destinations)
# @Mason: this line need not be included in your code. SMTP#start throws
# a Net::SMTPAuthenticationError if the authentication was not successful.
# So just putting this call to #start with an empty block in a method and
# calling assert_no_raise Net::SMTPAuthenticationError should do the trick.
# The empty block is necessary so that the connection gets closed.
# Reference #{rubydir}/lib/ruby/1.8/net/smtp.rb for more info.
end
ActionMailer benziyor :: Base.smtp_settings erişilebilir çok geçerli:
settings = ActionMailer::Base.smtp_settings
koymak Sizin testinizde ve yukarıda bahsedilen hatların yorumlanmasında sizin için bir çalışma örneği olmalıdır.
harika. Teşekkürler Tim ve denemek ve kabul etmek için bu kadar uzun süre için üzgünüm! – XZVASFD
smtp = Net::SMTP.new settings[:address], settings[:port]
smtp.enable_starttls_auto if settings[:enable_starttls_auto]
smtp.start(settings[:domain]) do
expect {
smtp.authenticate settings[:user_name], settings[:password], settings[:authentication]
}.to_not raise_error
end
kimlik doğrulama başarısız olursa bir Net::SMTPAuthenticationError
yükseltecektir authenticate
çağrılıyor.
Aksi takdirde, Net::SMTP::Response
döndürülecek ve yanıt için status
numaralı çağrı "235"
döndürecektir.
Kendi testimde bildiğim kadarıyla, kimlik doğrulama başarısız olduğunda "kimlik doğrulaması" hata vermez. Yanlış bir parola verilirse, şu iletiyi '.string 'içinde döndürür, örneğin:' 535 Kimlik doğrulama başarısız oldu: Hatalı kullanıcı adı/parola '. – theGreenCabbage
- 1. Parazit karmasını Rails testinde nasıl test ediyorsunuz?
- 2. ASP MVC uygulamalarınızı kullanıcı tabanlı güvenlik için nasıl test ediyorsunuz?
- 3. ASP.NET MVC kullanarak birim web sayfası yetkilendirmesini nasıl test ediyorsunuz?
- 4. Gerekli OpenID bilgilerinin saklanması
- 5. AWS Komut Satırı Araçları için kimlik bilgileri nasıl test edilir
- 6. AngularJS çerezlerini uçtan uca testte nasıl test ediyorsunuz?
- 7. Test Tabloları Nasıl Kullanılır (Rails)
- 8. Git'te, geçerli revizyonumun ne olduğunu nasıl anlarım?
- 9. Geçerli olduğunu kontrol edin IMEI
- 10. Verileri, urllib2 tarafından hangi verileri almayı test ediyorsunuz?
- 11. Django QuerySets'in eşit olduğunu nasıl test ederim?
- 12. Rails eklentisindeki görünümleri nasıl test edebilirim?
- 13. Test HTTP Basic Auth 2.2 +
- 14. Rails ile Firebase Kimlik Doğrulama Nasıl Yapılır?
- 15. ZF2 birim test kimlik doğrulama
- 16. Bir Rails 3 uygulamasının test paketini nasıl test edebilirim?
- 17. Güncel_kullanıcıya nasıl geçileceğine dikkat edin mailler
- 18. Maven'deki projemden dosyaları kopyalama Mailler
- 19. Twilio test kimlik bilgileri günlükleri
- 20. android + gmail + feed + mailler olsun
- 21. Bir pencere tanıtıcısının ne zaman geçerli olduğunu nasıl belirleyebilirim?
- 22. Kryo kullanarak immutable koleksiyonunu nasıl deserialize ediyorsunuz?
- 23. Geçerli Time.zone Rails olarak ayarlandı mı?
- 24. RSpec ve Capybara (Rails) ile Test Yönlendirme
- 25. Posta sunucusunun Java ile canlı olduğunu nasıl test edebilirim?
- 26. ServiceStack ISession'ı Moq ve StructureMap kullanarak nasıl alay ediyorsunuz?
- 27. Rails birim test jeneratörlerini devre dışı bırakma
- 28. Raylar 3 mailler çalışmıyor ve herhangi bir hata kaydetmiyor
- 29. MySQL'i (node-orm2 ile) Node.js/Express'te nasıl alay ediyorsunuz?
- 30. Rails
Neyi test etmeye çalışıyorsunuz? Kimlik bilgileriniz doğru mu, yoksa ActionMailer aslında çalışıyor mu? –
Kimlik bilgileri doğru. ActionMailer'in çalıştığına inanıyorum. Sadece bir şifreyi manuel olarak değiştirirsem ancak kodumu güncellemeyi unutursam testlerimin onu yakalamasını istiyorum. – XZVASFD