2012-01-27 4 views
0

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 파일의 파일 형식은 다음과 같습니다.

01 여기
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_autotruefalse으로 설정해 보았습니다. false으로 설정하면 분할 오류가 발생하지 않지만 이메일이 전송되지 않으므로 쓸모가 없습니다.

나는 나의 맥에서이 명령을 실행하여 Gmail의 SMTP 서비스에 연결할 쉽게 할 수 있어요 :

$ telnet smtp.gmail.com 587 

확실하지가 당장은 - 어떤 제안?

+0

운영 체제에 이것을 추가하는 것입니다? 만약 windows가 있다면 ... : X –

+0

나는 MacOS 10.7.2를 사용하고있다. –

+0

동일한 문제가 있습니다. ( – Kir

답변

1

나는 그물/http에서 아주 유사한 과실이 있었다. 이렇게

은 고정 :

rvm pkg install openssl 
rvm pkg install iconv 
rvm pkg install readline 
rvm reinstall 1.9.3 --with-iconv-dir=$rvm_path/usr --with-openssl-dir=$rvm_path/usr --with-readline-dir=$rvm_path/usr 
관련 문제