كيف يمكنني منع مرفقات البريد الإلكتروني من التقديم مضمنة باستخدام ActionMailer

StackOverflow https://stackoverflow.com/questions/1905305

سؤال

أنا أستخدم التعليمات البرمجية التالية لإرسال بريد إلكتروني مع مرفق PDF:

class StudyMailer < ActionMailer::Base
  def notify_office(study, sent_at = Time.now)
    subject    "Email Subject Goes Here"
    recipients 'user@domain.come'
    from       "#{study.sender.full_name} <#{study.sender.email}>"
    sent_on    sent_at
    body       :study => study
    for document in study.documents   
      attachment :content_type => "application/pdf", :body => File.read(document.document.path) #absolute path to .pdf document
    end
  end
end

عند إرسال البريد الإلكتروني، يبدو أن المرفق قد يؤدي إلى تقديم رمز ثنائي بدلا من مرفق .pdf.

كيف يمكنني تقديم .pdf كمرفق نموذجي، بدلا من مضمن؟

هل كانت مفيدة؟

المحلول

attachment :content_type => "application/pdf", 
    :content_disposition => "attachment", 
    :filename => File.basename(fattach), 
    :body => File.new(fattach,'rb').read() 

لاحظ خط التصرف المحتوى.

نصائح أخرى

أعتقد أن عليك الإشارة إلى الطبيعة متعددة الأجزاء من البريد الإلكتروني، لذلك أضف هذا الخط تحت from خط:

content_type    "multipart/alternative"

هل لدى بريدك الإلكتروني قالب؟ إذا لم يكن لدى البريد الإلكتروني قالب، فإن المرفق يظهر مضمنا حتى إذا تم إعداد كل شيء آخر بشكل صحيح. إنشاء قالب البريد الإلكتروني مرفق.

المشاهدات / notifier / quarial.html.erb

<p>   Please see attachment    </p>

ثم في الموقع، حدد لاستخدام هذا القالب.

Notifier.rb.

def my_email_method
    ...
    mail(:template_name => 'attachment', :from => from_address, ...)
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top