2010-11-20 20 views
21

Kullanıcıyı onaylamak ve onu unutursa şifresini kurtarmasına izin vermek için Devise: onaylanabilir ve geri alınabilir modülü kullanıyorum. Her şey yolunda gidiyor, posta üretiliyor ve sunucu günlüğünde görebiliyorum, ancak sonra hatalarla karşılaşıyorum ve posta posta kutusuna teslim edilmiyor. Benim environment.rb dosyası için SMTP ayarları geçerli:Tasarım ve Gmail smtp sunucusu ile posta gönderme

require 'tlsmail' 
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE) 
ActionMailer::Base.raise_delivery_errors = true 
ActionMailer::Base.perform_deliveries = true 
ActionMailer::Base.delivery_method = :smtp 

ActionMailer::Base.smtp_settings = { 
    :enable_starttls_auto => true, #this is the important shit! 
    :address => 'smtp.gmail.com', #'localhost', 
    :port => 587, 
    :tls => true, 
    :domain => 'mail.google.com', # mail.customdomain.com if you use google apps 
    :authentication => :login, 
    :user_name => '[email protected]', 
    :password => '_secret_password' 
} 

ise: adresidir 'smtp.gmail.com', sonra ben aşağıdaki hatayı alıyorum:

SocketError (getaddrinfo: Name or service not known): 

i ayarlarsanız : 'localhost', sonra ben almak aşağıdaki hata adresi:, adres demektir bütün bunlar için bir acemi:

Errno::ECONNREFUSED Connection refused - connect(2) 

Bunu bilmiyorum. çalıştıran günü 'uname -a i dosyası girişleri vardır benim /etc/hosts olarak

Linux jatin-ubuntu 2.6.32-24-generiC#38-Ubuntu SMP Mon Jul 5 09:22:14 UTC 2010 i686 GNU/Linux 

olsun: Ben 'smtp.gmail.com' adresini yorumsuz

127.0.0.1 localhost 
127.0.1.1 jatin-ubuntu 

*#74.125.93.109 smtp.gmail.com 
#The above entry added by me* 

# The following lines are desirable for IPv6 capable hosts 
::1  localhost ip6-localhost ip6-loopback 
fe00::0 ip6-localnet 
ff00::0 ip6-mcastprefix 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters 
ff02::3 ip6-allhosts 

SocketError (getaddrinfo: Name or service not known): 

ve şimdi hatadır:/etc/hosts dosyasında, aşağıdaki hata gitti

Errno::ECONNREFUSED Connection refused - connect(2) 

yanlış neler olduğunu bilmiyorum hatalar için googled ve hiçbir şey kurtarmak için geldi ama her şeyi denedim. 'tlsmail' gem yüklü ve 'posta' taş da var ve benim uygulama geliştirme modunda. Bu hatayı düzeltmeme yardım et, böylece raylar yolculuğuma mutlu bir şekilde devam edebilirim ve eğer mümkünse bana bu konuda biraz yol göstereyim: Adres konusunu doğru yönde, böylece bunun temellerini anladım. peşin Teşekkür

cevap

24

sen hâlâ bu sorun yaşıyorsanız bu ayarları kullanmayı deneyin: Farklı posta sunucumuz belirtebilirsiniz böylece

require 'tlsmail'  
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE) 

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.perform_deliveries = true 
ActionMailer::Base.raise_delivery_errors = true 
ActionMailer::Base.smtp_settings = { 
    :enable_starttls_auto => true, 
    :address   => 'smtp.gmail.com', 
    :port    => 587, 
    :tls     => true, 
    :domain    => 'gmail.com', #you can also use google.com 
    :authentication  => :plain, 
    :user_name   => '[email protected]', 
    :password   => '_secret_password' 
} 

Ayrıca yerine environment.rb senin config/ortamlar/development.rb dosyasında bu ayarları koyarak öneriyoruz her ortam için.

+0

Teşekkürler adam ... Gerçekten işe yaradı. Kendi alanımın ve o alan adına ait bir kullanıcı adına sahip olduğum bir alanı da varsa ayarları reddedebilir misiniz? –

+0

Sadece alan adınız olmak için etki alanını ve [email protected] olmak için kullanıcı_adı değiştirin ... Diğer her şey aynı olmalıdır. –

+0

Bu ayarlarla [email protected] adresinden herhangi bir posta adresine e-posta gönderecek mi? – shibly

0
+0

@Rio Tera: Ben tüm bu şeylerin yeni biriyim, bu yüzden bana ne yönettiğinizi anlayamadım. Biraz –

+0

detaylandırır mısınız: domain muhtemelen sizin alanınız olmalıdır.com ' – riotera

+0

@Rio tera: Henüz kendi alanım yok, web geliştirmeye yeni başlayan biri. O zaman ne yapmalıyım?? Kendi alanınıza sahip olmak bunun için bir önkoşuldur mu? Varsa, –