Ruby Pony通过电子邮件发送ssl问题

时间:2013-06-19 17:51:38

标签: ruby email pony

我无法让小马上班。现在我收到一个错误:

  

TypeError:错误的参数(NilClass)! (预期的OpenSSL :: SSL:SSLContext)

我正在使用带有smtp的Pony.rb,这是迄今为止的方法调用:

class Email
     def send_email
             Pony.mail({
                   :to => 'user@domain.com',
                   :via => :smtp,
                   :via_options => {
                         :address => 'smtp.macpractice.com',
                         :port => '587', 
                         :enable_starttls_auto => true,
                         :user_name => 'user@macpractice.com',
                         :password => 'password',
                         :authentication => :plain,
                         :domain => "localhost.localdomain"
                   }
             })
     end
end

我搜索了文档和smtp.rb文件以找出发生了什么,但不知何故它没有被传递给SSLContext对象,我不知道如何在Pony中这样做。

1 个答案:

答案 0 :(得分:3)

刚刚想出答案。它是这样关闭SSL验证:

require 'pony'
class Email
    def send_email 
            Pony.mail({
                    :to => 'cole@macpractice.com',
                    :from => 'blaine@macpractice.com',
                    :subject => 'test',
                    :body => "yo dude",
                    :via => :smtp,      
                    :via_options => {
                            :address        => 'smtp.macpractice.com',
                            :port           => '10040',
                            :user_name      => 'blaine',
                            :password       => '',
                            :authentication => :cram_md5,
                            :domain         => "localhost.localdomain",
                            :openssl_verify_mode    => OpenSSL::SSL::VERIFY_NONE,
                            :enable_starttls_auto   => false

                    }   
            })
    end
end

将starttls_auto设置为false,并使用ssl verify模式验证无创建没有ssl验证的smtp电子邮件。