Отладка доставки почты в IronWorker

Я пытаюсь использовать mail драгоценный камень, чтобы послать электронное письмо от задачи IronWorker. Запуск сценария работает в моей локальной системе (OS X), но завершается неудачно при запуске на IronWorker с теми же параметрами. Я новичок в IronWorker и mail драгоценный камень, так что я в недоумении, где начать отладку. Вот текст сообщения об ошибке.

/task/email.rb:5:in `block in <top (required)>': undefined method `[]' for nil:NilClass (NoMethodError)     
from /task/__gems__/gems/mail-2.4.4/lib/mail/mail.rb:106:in `instance_eval'     
from /task/__gems__/gems/mail-2.4.4/lib/mail/mail.rb:106:in `defaults'  
from /task/email.rb:3:in `<top (required)>'     
from /usr/local/lib/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'  
from /usr/local/lib/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'  
from __runner__.rb:213:in `<main>'

И вот мой код:

require 'mail'

Mail.defaults do
  delivery_method :smtp, {
    address: params['address'],
    port: 587,
    domain: params['domain'],
    user_name: params['username'],
    password: params['password'],
    authentication: 'plain',
    enable_starttls_auto: true
  }
end

Mail.deliver do
  to "#{params['to_name']} <#{params['to_address']}>"
  from "#{params['from_name']} <#{params['from_address']}>"
  subject "Mail test"
  text_part do
    body params['text']
  end
  html_part do
    content_type 'text/html; charset=UTF-8'
    body params['html']
  end
end

Обратите внимание, что раньше я получал эту ошибку локально, но она была вызвана использованием username по умолчанию вместо user_name, Есть идеи?

1 ответ

Я не уверен, но похоже, что 'params' - это ноль, не могли бы вы попытаться проверить его перед использованием в. Это могло произойти, если вы используете в своем рабочем пространстве отдельные пространства имен (например, тело работника внутри класса)

Другие вопросы по тегам