OK - 여기에 머무르고 있습니다. 내가 사용하고 있습니다 :Rails 3 - 세분화 오류를 일으키는 Devise/ActionMailer/RUBY-SMTP
- ruby-1.9.3-p0
- rails-3.1.3
- mail-2.3.0
- devise-1.5.3
고안의 :confirmable
옵션을 설정하고 내 응용 프로그램에서 SMTP 서비스를 시작하려고합니다. /config/initializers/setup_mail.rb
을 추가하자 마자 DB에 Devise의 필수 열을 추가하고 :confirmable
속성을 User
모델에 추가하면 세그먼트 오류가 발생합니다. 그것은 사용자가 등록한 직후에 발생합니다.
... 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 => "[email protected]",
:password => "???????",
:authentication => "plain",
:enable_starttls_auto => true
}
ActionMailer::Base.default_url_options[:host] = "localhost:3000"
Devise
은 다음과 충돌 루비 SMTP 라이브러리를 일으키는 원인이되는 확인 메일을 보내려고
내 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' }
23,516,루비/1.9.1/그물/smtp.rb에서 밀접한 코드 (라인 583은 중간 근처) : SMTP가 시도 할 때
그것은 세그먼트 오류처럼 보이는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
가 발생합니다 SSL 소켓 연결 (s.connect
)을 통해 연결하십시오. setup_mail.rb
에서 :enable_starttls_auto
을 true
및 false
으로 설정해 보았습니다. false
으로 설정하면 분할 오류가 발생하지 않지만 이메일이 전송되지 않으므로 쓸모가 없습니다.
나는 나의 맥에서이 명령을 실행하여 Gmail의 SMTP 서비스에 연결할 쉽게 할 수 있어요 :
$ telnet smtp.gmail.com 587
확실하지가 당장은 - 어떤 제안?
운영 체제에 이것을 추가하는 것입니다? 만약 windows가 있다면 ... : X –
나는 MacOS 10.7.2를 사용하고있다. –
동일한 문제가 있습니다. ( – Kir