У меня есть проблемы, на самом деле отправляющие через ActionMailer в разработке, на моем localhost, с направляющими 2.3.2 и Ruby 1.8.6. development.log показывает, что это "послало" электронное письмо без ошибок, но электронное письмо не получено. Я попробовал несколько адресов электронной почты за отправку и получение и попробовал несколько конфигураций и плагинов, но не могу заставить электронную почту отправлять. Любая справка очень ценилась бы - я чувствую, что танцую вокруг набора версий решений для различных версий направляющих и рубина и не могу закрепить его. Я был бы очень признателен за любые комментарии. Спасибо!
Плагины:
Различные почтовые конфигурации:
ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => true, #works in ruby 1.8.7 and above
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'example.com',
:authentication => :plain,
:user_name => 'testacct',
:password => 'secret'
}
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:tls => :true,
:address => 'smtp.gmail.com',
:port => 587,
:authentication => :plain,
:user_name => 'testacct@gmail.com',
:password => 'secret'
#:enable_starttls_auto => true # for rails >= 2.2 && ruby >= 1.8.7
}
config.action_mailer.perform_deliveries = :true #try to force sending in development
config.action_mailer.raise_delivery_errors = :true
config.action_mailer.default_charset = "utf-8"
Development.log:
Sent mail to sa23kdj@trash2009.com
Date: Fri, 18 Dec 2009 00:27:06 -0800
From: Test Email Acct <testacct@gmail.com>
To: sa23kdj@trash2009.com
Subject: Signup
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary=mimepart_4b2b3cda9088_634334302a5b7
--mimepart_4b2b3cda9088_634334302a5b7
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: Quoted-printable
Content-Disposition: inline
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang=3D'en' xml:lang=3D'en' xmlns=3D'http://www.w3.org/1999/xhtml'>=
<head>
<meta content=3D'text/html;charset=3DUTF-8' http-equiv=3D'content-typ=
e' />
</head>
<body>
Welcome Email
<p>
user name:
lfglkdfgklsdf
activation link:
http://localhost:3000/login
</p>
</body>
</html>
--mimepart_4b2b3cda9088_634334302a5b7--
Вам нужно использовать true
, а не : true
.
:tls => true
...
config.action_mailer.perform_deliveries = true #try to force sending in development
config.action_mailer.raise_delivery_errors = true
В случае, если кто-то столкнется с этой проблемой, установите config.action_mailer.raise_delivery_errors = true в development.rb в папке вашей среды и попробуйте отправить почту еще раз. Это должно вызвать возникшую ошибку.
Иногда в строке 8 файла smtp_tls.rb метод check_auth_args принимает только 2 аргумента: пользовательский и секретный. Удалите аргумент authtype, если вы его видите, и повторите попытку. Должно сработать.