2010-11-20 62 views
21

Tôi đang sử dụng Devise: xác nhận và: mô-đun có thể phục hồi để xác nhận người dùng và để cho anh ta khôi phục mật khẩu của mình nếu anh ấy quên mật khẩu. Mọi thứ đều ổn, thư được tạo ra và tôi có thể nhìn thấy nó trong nhật ký máy chủ, nhưng sau đó tôi phải đối mặt với lỗi và thư không được gửi đến hộp thư. Các thiết lập SMTP cho file environment.rb của tôi là:Gửi thư với máy chủ và máy chủ SMTP smtp

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' 
} 

Nếu: Địa chỉ là 'smtp.gmail.com', sau đó tôi nhận được lỗi sau:

SocketError (getaddrinfo: Name or service not known): 

Nếu tôi đặt : địa chỉ để 'localhost', sau đó tôi nhận được lỗi sau:

Errno::ECONNREFUSED Connection refused - connect(2) 

Tôi không biết điều này: địa chỉ có nghĩa là, một newbie cho tất cả các công cụ này. On chạy uname -a, tôi nhận được

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

Trong tôi /etc/hosts tập các mục là:

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 

Khi tôi bỏ ghi chú địa chỉ 'smtp.gmail.com' trong tệp/etc/hosts, lỗi sau đã biến mất:

SocketError (getaddrinfo: Name or service not known): 

và hiện tại lỗi là:

Errno::ECONNREFUSED Connection refused - connect(2) 

Tôi không biết những gì đang xảy ra, googled cho các lỗi và cố gắng tất cả mọi thứ nhưng không có gì đến để giải cứu. Tôi cũng có đá quý 'tlsmail' được cài đặt và đá quý 'mail' và ứng dụng của tôi đang ở chế độ phát triển. Giúp tôi sửa lỗi này để tôi có thể vui vẻ tiếp tục hành trình đường ray của mình và nếu có thể hướng dẫn tôi một chút về vấn đề này: vấn đề địa chỉ theo đúng hướng để tôi hiểu những điều cơ bản về điều này. Cảm ơn trước

Trả lời

24

Nếu bạn vẫn gặp vấn đề với điều này hãy thử sử dụng các thiết lập này:

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' 
} 

Bên cạnh đó tôi sẽ khuyên bạn nên đặt các thiết lập này trong config/môi trường/file development.rb của bạn thay vì environment.rb để bạn có thể chỉ định mailservers khác nhau cho mỗi môi trường.

+0

Cảm ơn người đàn ông ... Nó thực sự hiệu quả. Bạn cũng có thể viết xuống các thiết lập nếu tôi có một tên miền của riêng tôi và một tên người dùng bởi tên miền đó.? –

+0

Chỉ cần đổi tên miền thành miền của bạn và user_name thành [email protected] ... Mọi thứ khác sẽ giống nhau. –

+0

Với cài đặt này, nó sẽ gửi email từ [email protected] đến bất kỳ địa chỉ gửi thư nào? – shibly

0
+0

@Rio Tera: Tôi là một người mới đến tất cả những thứ này, vì vậy không thể hiểu những gì bạn đang hướng dẫn tôi. Bạn có thể xây dựng một chút –

+0

: tên miền có lẽ là tên miền của bạn 'ví dụ.com ' – riotera

+0

@ Rio tera: Tôi chưa có tên miền riêng cho mình, một người mới đến phát triển web. Tôi nên làm cái gì sau đó?? Có miền riêng của bạn là điều kiện tiên quyết cho điều này không ?? Nếu có, tôi sẽ mua một asap –

Các vấn đề liên quan