我很难让小马去上班。现在我发现一个错误:
类型错误:参数错误(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/