Отладка доставки почты в 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' - это ноль, не могли бы вы попытаться проверить его перед использованием в. Это могло произойти, если вы используете в своем рабочем пространстве отдельные пространства имен (например, тело работника внутри класса)