У меня такая же проблема. Я использую Sendmail вариант и продолжать получать ошибкуНастройки для Devise :: Mailer - diaspora smtp_envelope_from и smtp_envelope_to sendmail
«SMTP-адрес отправителя должен послать сообщение. Установите сообщение smtp_envelope_from, return_path, отправитель, или адрес.»
Я протестировал почтовый жемчуг с консоли ruby и отлично работает. AppConfig сообщает, что метод доставки - sendmail, а также сообщает, что sender_address
точно указан в файле app/config/diaspora.yaml
. Mail.delivery_method
также возврат sendmail. Когда я установил @smtp_envelope_from = '[email protected]'
в gems/mail-2.5.4/lib/mail/message.rb
я получаю подобное еще другое сообщение об ошибке ..
«SMTP-адрес Для требуется, чтобы отправить сообщение. Установите сообщение smtp_envelope_to, чтобы, куб.см, или ОЦК адрес.»
эта ошибка возникает в lib/mail/check_delivery_params.rb:9:in check_delivery_params'
, я, таким образом, попытаться установить @smtp_envelope_to = '[email protected]'
в message.rb
, просто чтобы проверить это, как я знаю, что эти параметры должны быть применены в другом месте (эта нить, кажется, только я могу найти решение этой) ошибка я получаю после установки @smtp_envelope_to
является
неопределенной methodmap»для "[email protected]": String
Я первоначально был обеспокоен тем, что delivery_method
не был настроен правильно, но след показывает, что до того, как будет вызвана check_delivery_params, введите lib/mail/network/delivery_methods/sendmail.rb:50:in
! так что это не так. Это стандартная версия, клонированная неделю назад. Использование RVM and ruby-1.9.3-p484
. Я получаю те же ошибки в режиме производства и режиме разработки. Я использую стратегии, такие как grep -r
подписи метода, чтобы помочь мне найти файлы и атрибуты, где они устанавливаются и инициализируются. У меня возникли проблемы с пониманием того, как configure устанавливает значения в AppConfig
и точно как работает Devise::Mailer
.
Моя самая большая инквизиция во всем этом, где в приложении диаспорой я призываю методы, чтобы установить smtp_envelope_from
и smtp_envelope_to
, что является стандартным способом установки их в диаспоре, и как я могу подтвердить, что они установлены. Я пытаюсь получить успешную почту для password_instructions
. Кажется, что это осталось, чтобы придумать.
Пожалуйста, помогите, поскольку я давно искал решение. Я не готов отказаться от sendmail
, так как это не обязательно проблема. Также в версии, в которой я работаю с config/initializers/devise.rb
, нет атрибутов, упомянутых ранее, они кажутся автоматически установленными как-то, это полезно для разделения данных из логики, на самом деле немного раздражает, когда оно, похоже, не работает.
Далее: research Я выдаю следующие команды, чтобы увидеть, где указаны указанные атрибуты, и он не возвращает один файл, в котором они установлены, значениями, которые я ожидал бы от них, они инициализируются именно этим.
~ $ Grep -r smtp_envelope_from
.irb-истории: Почта.smtp_envelope_from
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: if mail.smtp_envelope_from.blank?
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: raise ArgumentError.new ('SMTP От адреса требуется для отправки установите сообщение smtp_envelope_from, return_path, отправитель или адрес. ')
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params. гь: [mail.smtp_envelope_from, mail.smtp_envelope_to, сообщение]
.rvm/драгоценные камни/рубин-1.9.3-p484 @ диаспора/драгоценные камни/почты 2.5.4/Библиотека/почта/message.rb: @smtp_envelope_from = nil
.rvm/gems/ruby-1.9.3-p484 @ di aspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from = 'Mikel'
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5 .4/lib/mail/message.rb: # mail.smtp_envelope_from # => '[email protected]'
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail- 2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from 'Mikel'
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from # => '[email protected]'
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail /сообщение. гь: Защита smtp_envelope_from (значение = ноль)
.rvm/драгоценные камни/рубин-1.9.3-p484 @ диаспора/драгоценные камни/почты 2.5.4/Библиотека/почты/message.rb: self.smtp_envelope_from = значение
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_from || return_path || отправитель || from_addrs.first
.rvm/драгоценные камни/рубин-1.9.3-p484 @ диаспора/драгоценные камни/почты 2.5.4/Библиотека/почта/message.rb: # mail.smtp_envelope_from = 'Микель'
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from # => '[email protected]'
.rvm/драгоценные камни/рубин-1.9.3-p484 @ диаспора/драгоценные камни/почты 2.5.4/Библиотека/почта/message.rb: Защита smtp_envelope_from = (значение)
.rvm/камни/рубин-1,9 .3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_from = val
Другая команда я бегу, чтобы увидеть, что я могу найти
~ $ Grep -r smtp_envelope_to
.rvm/драгоценные камни/рубиново-1.9.3-p484 @ диаспорскую/драгоценные камни/почта -2.5.4/lib/mail/check_delivery_params.rb: if mail.smtp_envelope_to.blank?
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: raise ArgumentError.new ('SMTP. Для адреса требуется отправить установите сообщение smtp_envelope_to, to, cc или адрес электронной почты. ')
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params. rb: [mail.smtp_envelope_from, mail.smtp_envelope_to, сообщение]
.rvm/драгоценные камни/рубин-1.9.3-p484 @ диаспора/драгоценные камни/почты 2.5.4/Библиотека/почты/message.rb: @smtp_envelope_to = ноль
.rvm/gems/[email protected]/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to = 'Mikel'
.rvm/gems/ruby-1.9.3 [email protected]/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to # => '[email protected]'
.rvm/gems/ruby-1.9. [email protected]/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to ['Mikel', 'Lindsaar']
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to # => [[email protected] ',' [email protected] ']
.rvm/gems/ruby-1.9.3-p484 @ diaspora/gems/mail-2.5.4/lib/mail/message.rb: def smtp_envelope_to (вал = ноль)
.rvm/драгоценные камни/рубин-1.9.3-p484 @ диаспора/драгоценные камни/почты 2.5.4/Библиотека/почты/message.rb: self.smtp_envelope_to = значение
.rvm /gems/[email protected]/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_to || направления
.rvm/драгоценные камни/рубин-1.9.3-p484 @ диаспора/драгоценные камни/почты 2.5.4/Библиотека/почты/message.rb: # mail.smtp_envelope_to = 'Микель'
.rvm /gems/[email protected]/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to # => '[email protected]'
. rvm/gems/[email protected]/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to = ['Mikel', 'Lindsaar']
.rvm /gems/[email protected]/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to # => ['[email protected]aar.net', 'lindsaar @ test.l indsaar.net '] .rvm/камни/рубин-1.9.3-p484 @ диаспора/драгоценные камни/почты 2.5.4/Библиотека/почта/message.rb: Защита smtp_envelope_to = (значение)
.rvm/gems/[email protected]/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_to =
Grep: aquota.user: отказано в
диаспорой/журнал /development.log:ArgumentError (для отправки сообщения требуется адрес SMTP. Установите сообщение smtp_envelope_to, to, cc или адрес адресной почты.):
diaspora/log/development.log: ArgumentError (SMTP) Для отправки сообщения необходимо отправить сообщение: smtp_envelope_to, to, cc или ОЦК-адрес):.
Grep: потерял + найдено: отказано в
Как вы можете видеть, что эти параметры инициализируются в mail/lib/mail/message.rb
, но не даны соответствующие значения нигде. Возможно ли, что методы могут иметь псевдоним или быть каким-то образом установлены, что я не смог бы найти их, используя эту технику? Возможно ли, что actionmailer
и mail
в ruby-1.9.3-p848
имеют более новые требования или изменения, которые не поддерживает диаспора? (в вики-версии указано, как использовать эту версию.) config/diaspora.yaml
позволяет мне указать значение по умолчанию из адреса, но адрес должен быть установлен в почтовом блоке, если я не ошибаюсь
Тем не менее в недоумении по этому вопросу, пожалуйста, помогите
Однако дальнейшее тестирование в ответ на ошибку
неопределенная methodmap»для "[email protected]": String
lib/mail/check_delivery_params.rb:9:in check_delivery_params'
ожидал массив поэтому я @smptp_envelope_to = ['[email protected] m '] в gems/mail-2.5.4/lib/mail/message.rb
, и письмо было успешным при запросе пароля_reset_instructions, но содержимое в письме было пустым. Теперь рассматривая проблему где-то в ~/diaspora/app/mailers/diaspora_devise_mailer.rb
или ~/.rvm/gems/[email protected]/gems/devise-3.0.2/app/mailers/devise/mailer.rb
, когда я кошка последний Упоминаются файл я получаю
> class Devise::Mailer < Devise.parent_mailer.constantize
>> include Devise::Mailers::Helpers
>>
>> def confirmation_instructions(record, opts={})
>>> devise_mail(record, :confirmation_instructions, opts)
>> end
>> def reset_password_instructions(record, opts={})
>>> devise_mail(record, :reset_password_instructions, opts)
>> end
>> def unlock_instructions(record, opts={})
>>> devise_mail(record, :unlock_instructions, opts)
>> end
> end
Я сейчас работаю мой путь через контроллеры в devise/app
на данный момент я считаю, что проблема с завещанию. Хеширование над howto на почтовых программах в рубине должно помочь мне найти эту проблему. Блок сообщений должен быть создан где-то, но его местоположение не является очевидным. Если кто-нибудь может указать мне нужное место для создания блока сообщений, я сделаю небольшой танец победы или нет.
Я также хочу отметить только запись в ~/диаспорой/Config/routes.rb, касающуюся этого
> # This is a hack to overide a route created by devise.
> # I couldn't find anything in devise to skip that route, see Bug #961
> match 'users/edit' => redirect('/user/edit')
>
> devise_for :users, :controllers => {:registrations => "registrations",
> :password => "devise/passwords",
> :sessions => "sessions"}
Мне интересно, если я не должен смотреть на эту ошибку в диаспоре
Это было магически исправлено путем повторного клонирования диаспоры из github. Это была более новая версия, которая также требовала новой версии ruby. Прошел через стандартный процесс, и все работает. Спасибо, что посмотрели на это. Я все еще собираюсь продолжать копать, посмотреть, что по-другому и прочее