Mailboxer меняет получателей с электронной почты пользователя на имя пользователя RoR 4

Я начинающий программист и только что реализовал Mailboxer в своем веб-приложении Ruby on Rails 4. Все работает отлично, но я хочу, чтобы получателями были имена пользователей, а не их адреса электронной почты. Я искал часы и не могу найти точного ответа. Вот мой код, хотя это в значительной степени именно то, что предписывает делать документация.

конфиг/инициализаторы/mailboxer.rb

    Mailboxer.setup do |config|

  #Configures if you application uses or not email sending for Notifications and Messages
  config.uses_emails = true

  #Configures the default from for emails sent for Messages and Notifications
  config.default_from = "[email protected]"

  #Configures the methods needed by mailboxer
  config.email_method = :mailboxer_email
  config.name_method = :name

  #Configures if you use or not a search engine and which one you are using
  #Supported engines: [:solr,:sphinx]
  config.search_enabled = false
  config.search_engine = :solr

  #Configures maximum length of the message subject and body
  config.subject_max_length = 255
  config.body_max_length = 32000
end

приложение/модели/user.rb

  acts_as_messageable

  ...

  def name
    email
  end

  def mailboxer_email(object)
    email
  end

Любая помощь будет принята с благодарностью. Я пробовал играть с кодом, но я просто не могу найти правильную комбинацию настроек. Большое спасибо!


person AlenaMcLucas    schedule 05.09.2014    source источник


Ответы (1)


По сути, это функция пользовательского агента получателя почты, который принимает заголовок сообщения.

To: somebody <[email protected]>

и отображает только "кто-то". Один из способов создания этого заголовка должен быть

def mailboxer_email(object)
    "#{name} <#{email}>"
end

если переменная name содержит имя пользователя, которое вы хотите, чтобы почтовый пользовательский агент отображал.

person Ulrich Thomas Gabor    schedule 05.09.2014