2011-05-31 24 views
7

Tôi nhận được OpenSSL :: SSL :: SSLError khi tôi cố gắng gửi một email thông qua biểu mẫu liên hệ của tôi.Rails 3 actionmail OpenSSL :: SSL :: SSLError

Trong cấu hình/ứng dụng của tôi.rb Tôi đã thêm.

config.action_mailer.raise_delivery_errors = true 
config.action_mailer.delivery_method = :smtp 
    ActionMailer::Base.smtp_settings = { 
    :address => "mail.vinderhimlen.dk", 
    :port => 587, 
    :user_name => "[email protected]", 
    :password => "x", 
    :authentication => :login 
} 

hình thức của tôi:

<%= simple_form_for [@support], :url => { :action => "create" }, :html => { :method => :post } do |f| %> 
    <%= f.input :sender_name, :label => 'Navn' %> 
    <%= f.input :email, :label => 'E-mail' %> 
    <%= f.input :support_type, :collection => ['Feedback', 'Idé', "Rapporter fejl", 'Business', 'Andet'], :prompt => "Valg type", :label => 'Erinde' %> 
    <%= f.label :Besked %> 
    <%= f.text_area :content, :label => 'Besked', :style => 'width:500px;', %> 
    <%= f.submit "submit", :value => 'Send besked' %> 
<% end %> 

My Supportscontroller:

class SupportsController < ApplicationController 
    def new 
    # id is required to deal with form 
    @support = Support.new(:id => 1) 
    end 

    def create 
    @support = Support.new(params[:support]) 
    if @support.save 
     redirect_to('/', :notice => "Support was successfully sent.") 
    else 
     flash[:alert] = "You must fill all fields." 
     render 'new' 
    end 
    end 
end 

Hỗ trợ mô hình của tôi:

class Support 
    include ActiveModel::Validations 

    validates_presence_of :email, :sender_name, :support_type, :content 
    # to deal with form, you must have an id attribute 
    attr_accessor :id, :email, :sender_name, :support_type, :content 

    def initialize(attributes = {}) 
    attributes.each do |key, value| 
     self.send("#{key}=", value) 
    end 
    @attributes = attributes 
    end 

    def read_attribute_for_validation(key) 
    @attributes[key] 
    end 

    def to_key 
    end 

    def save 
    if self.valid? 
     Notifier.support_notification(self).deliver 
     return true 
    end 
    return false 
    end 
end 

cấu hình của tôi/các môi trường/Phát triển nối tiếp:

Konkurranceportalen::Application.configure do 
    # Settings specified here will take precedence over those in config/application.rb 

    # In the development environment your application's code is reloaded on 
    # every request. This slows down response time but is perfect for development 
    # since you don't have to restart the webserver when you make code changes. 
    config.cache_classes = false 

    # Log error messages when you accidentally call methods on nil. 
    config.whiny_nils = true 

    config.perform_delivery = true 

    # Show full error reports and disable caching 
    config.consider_all_requests_local  = true 
    config.action_view.debug_rjs    = true 
    config.action_controller.perform_caching = false 

    # Don't care if the mailer can't send 
    config.action_mailer.raise_delivery_errors = true 

    # Print deprecation notices to the Rails logger 
    config.active_support.deprecation = :log 

    # Only use best-standards-support built into browsers 
    config.action_dispatch.best_standards_support = :builtin 
end 

ray của tôi đăng nhập vào khi nộp mẫu đơn:

Started POST "/supports" for 127.0.0.1 at 2011-05-31 14:07:07 +0200 
     Processing by SupportsController#create as HTML 
     Parameters: {"utf8"=>"Ô£ô", "authenticity_token"=>"b4ILe7Xu4moToY8PN1X4wdyejz6 
    DQwnZ69FPevAWuSI=", "support"=>{"sender_name"=>"dfsdf", "email"=>"[email protected] 
    rbasen.dk", "support_type"=>"Feedback", "content"=>"dsdsfsdfsdfsdfsdfsadasdasd"} 
    , "commit"=>"Send besked"} 
     ←[1m←[36mSQL (0.0ms)←[0m ←[1mSELECT SUM(`tags`.`konkurrancers_count`) AS sum_ 
    id FROM `tags`←[0m 
     ←[1m←[35mSQL (10.0ms)←[0m describe `kategoris_konkurrancers` 
     ←[1m←[36mKonkurrancer Load (0.0ms)←[0m ←[1mSELECT `konkurrancers`.* FROM `kon 
    kurrancers`←[0m 
     ←[1m←[35mCACHE (0.0ms)←[0m SELECT `konkurrancers`.* FROM `konkurrancers` 
     ←[1m←[36mTag Load (1.0ms)←[0m ←[1mSELECT `tags`.* FROM `tags`←[0m 
    Rendered notifier/support_notification.html.erb (1.0ms) 

    Sent mail to [email protected] (277ms) 
    Date: Tue, 31 May 2011 14:07:08 +0200 

    From: [email protected] 

    To: [email protected] 

    Message-ID: <[email protected]> 

    Subject: New Feedback 

    Mime-Version: 1.0 

    Content-Type: text/html; 

    charset=UTF-8 

    Content-Transfer-Encoding: quoted-printable 



    =EF=BB=BFhello world! 

    dsdsfsdfsdfsdfsdfsadasdasd= 

    Completed in 865ms 

    OpenSSL::SSL::SSLError (hostname was not match with the server certificate): 
     app/models/support.rb:24:in `save' 
     app/controllers/supports_controller.rb:9:in `create' 

    Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc 
    h/middleware/templates/rescues/_trace.erb (1.0ms) 
     ←[1m←[35mKonkurrancer Load (1.0ms)←[0m SELECT `konkurrancers`.* FROM `konkurr 
    ancers` LIMIT 15 OFFSET 0 
     ←[1m←[36mSQL (4.0ms)←[0m ←[1mSHOW TABLES←[0m 
     ←[1m←[35mSQL (5.0ms)←[0m SHOW TABLES 
    Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc 
    h/middleware/templates/rescues/_request_and_response.erb (252.0ms) 
    Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc 
    h/middleware/templates/rescues/diagnostics.erb within rescues/layout (318.0ms) 

UPDATE:

Trong cấu hình của tôi/application.rb:

 config.action_mailer.smtp_settings = {:enable_starttls_auto => false } 
     config.action_mailer.raise_delivery_errors = true 
     config.action_mailer.delivery_method = :smtp 
      ActionMailer::Base.smtp_settings = { 
      :address => "mail.vinderhimlen.dk", 
      :port => 587, 
      :user_name => "[email protected]", 
      :password => "x", 
      :authentication => :login, 
      :domain => "vinderhimlen.dk", 
    :enable_starttls_auto => false 
     } 
+0

Tên miền không được đặt trong băm cấu hình của bạn + bạn nên thêm: enable_starttls_auto => false – apneadiving

+0

Vẫn không hoạt động. Tôi đã cập nhật mã mới. –

Trả lời