установить ОТВЕТ в электронной почте pony ruby

у нас есть наш API, построенный на Ruby с Sinatra драгоценным камнем. и использовать Pony для отправки электронных писем. Я хочу установить параметр reply-to. я пробовал все возможности, даже так, как говорится в документах Pony gem, но это вообще не работает ..

Наш почтовый код

require 'logjam'
require 'pony'

module Evercam
  module Mailers
    class Mailer
      LogJam.apply(self, "actors")

      @@templates = {}

      def initialize(inputs)
        @inputs = inputs
      end

      def erb(name)
        ERB.new(template(name)).result(binding)
      end

      private

      def template(name)
        @@templates[name] ||= File.read(
          File.expand_path(File.join('.', name))
        )
      end

      def method_missing(name)
        if @inputs.keys.include?(name)
          @inputs[name]
        end
      end

      def self.method_missing(name, *inputs)
        if self.method_defined?(name) && inputs[0]
          begin
            opts = self.new(inputs[0]).send(name)
            mail = Evercam::Config[:mail].merge(opts)
            Pony.mail(mail)
          rescue Exception => e
            log.warn(e)
          end
        end
      end

    end
  end
end

require_relative 'mailer'

module Evercam
  module Mailers
    class UserMailer < Mailer

      def confirm
        {
          to: user.email,
          subject: 'Evercam Confirmation',
          html_body: erb('templates/emails/user/confirm.html.erb'),
          body: erb('templates/emails/user/confirm.txt')
        }
      end

      def share
        {
          to: email,
          subject: "#{user.fullname} has shared a camera with you",
          html_body: erb('templates/emails/user/camera_shared_notification.html.erb'),
          attachments: attachments,
          reply_to: sharer
        }
      end

      def share_request
        {
          to: email,
          subject: "#{user.fullname} has shared a camera with you",
          html_body: erb('templates/emails/user/sign_up_to_share_email.html.erb'),
          attachments: attachments,
          reply_to: sharer
        }
      end

      def interested
        {
          to: '[email protected]',
          subject: 'Signup on evercam.io',
          body: erb('templates/emails/user/interested.txt')
        }
      end

      def app_idea
        {
          to: '[email protected]',
          subject: 'Marketplace idea on evercam.io',
          body: erb('templates/emails/user/app_idea.txt')
        }
      end

      def create_success
        {
          to: archive.user.email,
          subject: "Archive #{archive.title} is ready.",
          html_body: erb('templates/emails/user/archive_create_completed.html.erb'),
          attachments: attachments
        }
      end

      def create_fail
        {
          to: archive.user.email,
          subject: "Archive #{archive.title} failed.",
          html_body: erb('archive_creation_failed.html.erb'),
          attachments: attachments
        }
      end
    end
  end
end

ответ_на в share и в share_request вообще не работает. Любая помощь будет оценена по достоинству. Спасибо


person Junaid Farooq    schedule 11.04.2016    source источник
comment
запустить внешний скрипт, который может выполнить эту работу за вас с контроллера.   -  person Arihant Godha    schedule 11.04.2016
comment
Было бы неплохо добавить версии Pony gem и Mail gem из файла Gemfile.lock, который использует ваше приложение.   -  person Kashyap    schedule 13.04.2016
comment
Я так понимаю, вы пробовали более простой вариант, используя Pony в отдельной программе с жестко заданным параметром ответа? Если нет, то это был бы хороший следующий шаг, я думаю. (Также: возможно, я просто этого не вижу, но откуда share в приведенном выше коде?)   -  person Andy Jones    schedule 13.04.2016
comment
Я имею в виду sharer, а не share...   -  person Andy Jones    schedule 13.04.2016


Ответы (1)


Вопрос кажется старым, но я наткнулся на него, когда задавал себе тот же вопрос. В конце концов я вернулся на страницу pony git и нашел ответ в документации. .

Список опций

Вы можете получить список опций напрямую от Pony:

Pony.permissable_options

Параметры, переданные в значительной степени непосредственно в Mail

  • вложения # см. раздел вложения
  • скрытая копия
  • body # текстовое тело
  • body_part_header # см. раздел Пользовательские заголовки
  • cc
  • charset # Если вам нужно отправить utf-8 или аналогичный
  • Тип содержимого
  • от
  • заголовки # см. раздел Пользовательские заголовки
  • html_body # для отправки электронной почты в формате html
  • html_body_part_header # см. раздел «Пользовательские заголовки»
  • message_id
  • reply_to #Похоже, это то, что мы ищем. Еще не проверено.
  • sender # Устанавливает "конверт от" (и заголовок отправителя)
  • smtp_envelope_to
  • тема
  • text_part_charset # для составных сообщений установить кодировку текстовой части
  • to
person Franck UEVE    schedule 27.05.2020