【发布时间】:2012-02-20 06:04:17
【问题描述】:
好的 - 我在这里有点过头了。我正在使用:
- ruby-1.9.3-p0
- rails-3.1.3
- mail-2.3.0
- devise-1.5.3
尝试打开 Devise 的 :confirmable 选项并在我的应用程序中启动 smtp 服务。一旦我添加/config/initializers/setup_mail.rb,在我的数据库中添加Devise 的必要列,并将:confirmable 属性添加到我的User 模型中,我就会遇到分段错误。它在用户注册后立即发生。 Devise 正在尝试发送确认电子邮件,导致 ruby smtp 库崩溃并显示以下内容:
... lib/ruby/1.9.1/net/smtp.rb:583: [BUG] Segmentation fault
log/development.log中的最后一条:
Rendered devise/mailer/confirmation_instructions.html.erb (1.2ms)
我的/config/initializers/setup_mail.rb 文件:
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "mydomain.com",
:user_name => "support@mydomain.com",
:password => "???????",
:authentication => "plain",
:enable_starttls_auto => true
}
ActionMailer::Base.default_url_options[:host] = "localhost:3000"
我的config/environments/development.rb 文件有以下内容:
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
这是来自 ruby/1.9.1/net/smtp.rb 的相关代码(第 583 行靠近中间):
def ssl_socket(socket, context)
OpenSSL::SSL::SSLSocket.new socket, context
end
def tlsconnect(s)
verified = false
s = ssl_socket(s, @ssl_context)
logging "TLS connection started"
s.sync_close = true
s.connect # THIS IS LINE 583
if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
s.post_connection_check(@address)
end
verified = true
s
ensure
s.close unless verified
end
当 smtp 尝试通过 SSL 套接字连接 (s.connect) 进行连接时,似乎发生了分段错误。在setup_mail.rb 中,我尝试将:enable_starttls_auto 设置为true 和false。当设置为false 但没有电子邮件发送时,我没有收到分段错误,所以这是没用的。
通过在我的 Mac 上运行以下命令,我可以轻松连接到 gmail 的 smtp 服务:
$ telnet smtp.gmail.com 587
不确定从这里去哪里 - 有什么建议吗?
【问题讨论】:
-
操作系统?如果窗口... :X
-
我也有同样的问题 :(
-
在另一个论坛上我得到了这个建议:paul_at_nines.org> Jan 29 12:40PM -0500 ...你有这个问题吗? christopherirish.com/2011/09/02/… 这看起来很有希望。我试过了,但后来 RVM 开始搞砸我的 Rails 安装。太 FUBAR 以至于我不得不完全停止使用 RVM 并切换到 Homebrew 来安装 ruby,这样我才能让 Rails 再次运行。真是难以置信!如果 seg 错误问题随着 Homebrew ruby 消失,我将在此处发布更新。
-
另外,我在 RMV 文档中找到了一个处理 OpenSSL 的页面 - 有人可能会发现它很有价值:beginrescueend.com/packages/openssl
-
我能够测试 Homebrew 安装的 ruby,但仍然出现分段错误。 :-( 所以我想我回来看看我是否可以让 RVM 与 Rails 一起玩得很好......
标签: ruby ruby-on-rails-3.1 smtp actionmailer