我很难让小马去上班。现在我发现一个错误:
类型错误:参数错误(nilclass)!(需要openssl::ssl:sslcontext类型)
我将pony.rb与smtp一起使用,到目前为止,这里是方法调用:

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

我已经搜索了文档和smtp.rb文件,想知道发生了什么,但是不知怎么的,它没有被传递一个sslcontext对象,我不知道如何在pony中实现这一点。

最佳答案

刚刚找到答案。它将关闭ssl验证,如下所示:

require 'pony'
class Email
    def send_email
            Pony.mail({
                    :to => '[email protected]',
                    :from => '[email protected]',
                    :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 mode设置为verify none将创建一个没有ssl验证的smtp电子邮件。

关于ruby - Ruby Pony用电子邮件发送ssl问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17197950/

10-10 16:52