2010-11-20 9 views
21

Я использую Devise: confirmable и: восстанавливаемый модуль, чтобы подтвердить пользователя и позволить ему восстановить его пароль, если он его забудет. Все идет хорошо, почта генерируется, и я могу видеть ее в журнале сервера, но тогда я сталкиваюсь с ошибками, и почта не доставляется в почтовый ящик. Настройки SMTP для моего файла environment.rb является:Отправка почты с помощью разработчика и Gmail 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' 
} 

Если: адрес 'smtp.gmail.com', то я получаю следующее сообщение об ошибке:

SocketError (getaddrinfo: Name or service not known): 

Если я установить : адрес «локальный», то я получаю следующее сообщение об ошибке:

Errno::ECONNREFUSED Connection refused - connect(2) 

Я не знаю, что это: значит, адрес, новичка для всего этого материала. При управлении uname -a, я получаю

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

В моих /и т.д./хостов файл записи являются:

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 

Когда я раскомментировать 'smtp.gmail.com' адрес в файле/etc/hosts исчезла следующая ошибка:

SocketError (getaddrinfo: Name or service not known): 

и теперь ошибка:

Errno::ECONNREFUSED Connection refused - connect(2) 

Я не знаю, что происходит не так, искал ошибки и пробовал все, но ничего не спасло. У меня есть 'tlsmail' gem установлен, а 'mail' жемчужина также, и мое приложение находится в режиме разработки. Помогите мне исправить эту ошибку, чтобы я мог с радостью продолжить путешествие по рельсам и, если возможно, посоветуйте мне немного по этому поводу: адрес проблемы в правильном направлении, чтобы я понял основы этого. Заранее спасибо

ответ

24

Если вы все еще возникают проблемы с этим попробуйте использовать следующие настройки:

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

Кроме того, я рекомендовал бы поставить эти настройки в конфигурации/сред/файл development.rb вместо environment.rb, так что вы можете задать различные MailServers для каждой среды.

+0

Спасибо человеку ... Это действительно сработало. Не могли бы вы также перенести настройки, если у меня есть собственный домен и имя пользователя в этом домене?? –

+0

Просто измените домен, чтобы быть вашим доменом и user_name, чтобы быть [email protected] ... Все остальное должно быть одинаковым. –

+0

С помощью этих настроек будет ли он отправлять электронную почту с [email protected] на любой почтовый адрес? – shibly

0

Вероятно, проблема объясняется здесь:

http://mail.google.com/support/bin/answer.py?answer=10336

Другие ресурсы:

+0

@ Rio Tera: Я новичок во всем этом, поэтому не мог понять, к чему вы меня направляете. Не могли бы вы немного вычислить –

+0

: возможно, домен должен быть примером вашего домена.com ' – riotera

+0

@ Rio tera: У меня пока нет моего собственного домена, новичок в веб-разработке. Что мне тогда делать? Есть ли для вас собственный домен? Если да, я куплю один asap –

Смежные вопросы