实际提供正确参数时的 Ruby ArgumentError

标签 ruby email

Ruby 提示我没有为我的脚本提供足够的参数,即:

    #!/usr/bin/ruby
require 'mail'

def send(file,recipients_csv)
     recipients=recipients_csv.split(",")
      recipients.each do |recipient|
       Mail.defaults do
        delivery_method :smtp,{ :address => 'localhost', :port => 25,:openssl_verify_mode => OpenSSL::SSL::VERIFY_NONE}
       end
        mail = Mail.new do
         from 'noreply@mydomain.com'
         to "#{recipient}"
         subject "test"
         body "test"
         add_file :filename => "a_testfile.tsv", :content => File.read(file.path)
        end
       mail.deliver!
      end
end

testfile=File.new("newfile.tsv","w")
send(testfile,"name@mydomain.com")

我得到的是:

Mailer.rb:4:in `send': wrong number of arguments (1 for 2) (ArgumentError)
    from /usr/lib64/ruby/gems/1.9.1/gems/treetop-1.4.15/lib/treetop/runtime/compiled_parser.rb:18:in `parse'
    from /usr/lib64/ruby/gems/1.9.1/gems/mail-2.5.4/lib/mail/elements/address_list.rb:26:in `initialize'
    from /usr/lib64/ruby/gems/1.9.1/gems/mail-2.5.4/lib/mail/fields/common/common_address.rb:9:in `new'

我不明白,我提供的参数显然是 2

最佳答案

这可能与 Ruby 基础 send 方法冲突。尝试将 send 重命名为 send_mail(或其他名称),以避免覆盖 send 方法

关于实际提供正确参数时的 Ruby ArgumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30126124/

相关文章:

arrays - 将二维数组转换为一维 (Ruby)

ruby-on-rails - Rails belongs_to 关联(与 :class_name) returns nil

ruby-on-rails - 安装 rails 插件时出现警告

php - 使用自定义PHP的Cloudways的弹性电子邮件插件

ruby-on-rails-3 - Actionmailer BCC 不工作

php - 更改 SwiftMailer 生成的电子邮件中的多部分边界?

javascript - 带有 Mailgun 的 AJAX 函数,获取 "ERROR Request header field Authorization is not allowed by Access-Control-Allow-Headers"

ruby - 按多列对事件记录数组进行排序

ruby-on-rails - 为什么我的自引用模板会破坏控制台和 rake 中的缓存摘要计算,但不会破坏服务器中的缓存摘要计算?

ruby-on-rails - 如何显示电子邮件最初在 Rails 中发送给谁?