2015-11-04 2 views
0

Я работаю в Rails 2 application, где электронная почта запускается после загрузки контента и image с использованием paperclip.Вложение не отправлено по электронной почте с рельсами 2

Emails уволен успешно не я хочу прикрепить изображение к этим письмам, но я попробовал много, но not getting attachment по электронной почте.

Ниже используемого кода:

#Call from model my opinion model 
Mailer.deliver_new_my_opinion(self, self.user, email) 

# Write in Mailer model 

def new_my_opinion(my_opinion, user, email) 

    @attachments = File.read("#{Rails.root.to_s}"+"/public/system/attachment_images/744/original/map_screen.png") 

    @subject  = "You have a new OPINION question" 
    @from   = "#{Settings.site_name} <[email protected]#{Settings.site_host}>" 
    @recipients = email 
    @content_type = "multipart/mixed" 
    @sent_on  = Time.now 
    @body   = {:user => user, :my_opinion => my_opinion} 
    end 

Любой из нас есть решение.

Благодаря

ответ

0

Не уверен, если это помогает, но я использовал, чтобы отправить электронную почту, в несколько иной манере

В Mailer.rb

def send_invoice user, pdf_path 
    attachments["invoice_#{Time.now.to_date}.pdf"] = File.read(pdf_path) 
    @user = user 
    mail(
     :to  => @user.email, 
     :from => "[email protected]", 
     :subject => "xxx") do |format| 
      format.html { render "send_invoice" } 
     end 
end 

контроллер для отправки электронные письма

SubscriptionMailer.send_invoice (пользователь, pdf_path). доставить

0

Я не использую скрепку, но это, как я отправлять вложения в Rails 2 в качестве примера

attachment :content_type => "application/pdf", 
    :body => File.read(RAILS_ROOT + '/pdfs/' + quote.id.to_s + '.pdf') 

Это может быть путь, который вы используете - пользователь рельсами (apache, nginx, www-data и т.д.) не могут иметь права доступа, чтобы иметь возможность перемещаться по каталогам, начиная с /home/ поэтому стоило бы изменить его на

@attachments = File.read(RAILS_ROOT + "public/system/attachment_images/744/original/map_screen.png") 

или

attachment = File.read(RAILS_ROOT + "public/system/attachment_images/744/original/map_screen.png") 

EDIT

Rails.root используется в Rails 3 и 4, для Rails 2 используют RAILS_ROOT, взглянуть на этот вопрос: Rails Root directory path?

+0

Я уже используется RAILS_ROOT поэтому его печать из/дома , Прямо сейчас я определяю здесь статический путь. – user1780370

+0

Не совсем уверен, что вы имеете в виду, даже если это статический путь, который вы хотите использовать, рекомендуется использовать 'RAILS_ROOT', вы не хотите, чтобы он был жестко кодирован на пути к файловой системе - что происходит, когда приложение развертывается другая ОС, которая использует другую файловую систему или вы перемещаете приложение где-то еще? Я не верю, что путь должен начинаться с '/ home' либо по причине, упомянутой в ответе. Вы попробовали то, что я предложил, чтобы посмотреть, работает ли это или нет? – martincarlin87

+0

проверьте мой вопрос. Я обновил. Я уже использовал его в своем кодировании ... но не привязанный образ ... любая идея? – user1780370

 Смежные вопросы

  • Нет связанных вопросов^_^