كيف يمكنني منع مرفقات البريد الإلكتروني من التقديم مضمنة باستخدام ActionMailer
-
19-09-2019 - |
سؤال
أنا أستخدم التعليمات البرمجية التالية لإرسال بريد إلكتروني مع مرفق 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
لا تنتمي إلى StackOverflow