rails3

2011-02-16 12 views
7

में न्यूजलेटर बनाने का सबसे अच्छा तरीका क्या है यह करने के लिए कोई मणि है, और यदि नहीं, तो सबसे अच्छा तरीका क्या है। मुझे लगता है कि मैं एक न्यूज़लेटर डेटाबेस में ईमेल स्टोर करता हूं, और एक ऐसा फॉर्म चाहता हूं जो सभी को एक बार ईमेल करता है। धन्यवाद!rails3

उत्तर

12

इस के लिए कोई मणि नहीं है जिसे मैं जानता हूं।

वास्तव में, प्रसंस्करण समस्याओं के कारण, प्रदाता के एपीआई के माध्यम से बाहरी थोक ईमेल सेवा प्रदाता का उपयोग करने का सबसे अच्छा तरीका होगा।

हालांकि, अपना खुद का न्यूज़लेटर सिस्टम बनाना आपके नियमित एमवीसी के निर्माण से अलग नहीं है। केवल मेलर्स और मेलर विचार हैं।

(1) तो आप पंजीकरण डेटा (नाम, ईमेल:: आदि ...) और मॉडल जो सौदों से संबंधित हैं, मॉडल से संबंधित मॉडल बनाते हैं।

(2) नियंत्रक जो इसके साथ संबंधित है (सीआरयूडी) + (: भेजें)। भेजें प्रत्येक प्राप्तकर्ता लेता है, मेलर को डेटा भेजता है जो ईमेल बनाता है और फिर उसे भेजता है।

def send 
@newsletter = Newsletter.find(:params['id']) 
@recipients = Recipient.all 
@recipients.each do |recipient| 
    Newsletter.newsletter_email(recipient, @newsletter).deliver 
end 
end 

(3) मेलर, एक ईमेल बनाता प्रत्येक ई-मेल में कुछ परिवर्तन करता है यदि आप ऐसा ही कुछ करना चाहते हैं और यह रिटर्न कार्रवाई प्रसव के लिए भेज नियंत्रक को।

class Newsletter < ActionMailer::Base 
    default :from => "[email protected]", :content_type => "multipart/mixed" 

    def newsletter_email(recipient, newsletter) 
    # these are instance variables for newsletter view 
    @newsletter = newsletter 
    @recipient = recipient 
    mail(:to => recipient.email, :subject => newsletter.subject) 
    end 
end 

(4) OFC, आपको मेलर दृश्यों की आवश्यकता है जो नियमित विचारों की तरह हैं। खैर बहुखण्डीय में है:

  • newsletter_email.html.erb (या haml)
  • newsletter_email.txt.erb

    जब आप दोनों एचटीएमएल और पाठ केवल ईमेल भेजना चाहते हैं। इंस्टेंस वैरिएबल को मेलर ऑफसी में परिभाषित किया गया है।

और ... यही है। खैर आप उन्हें भेजने के लिए देरी से नौकरी का उपयोग कर सकते हैं क्योंकि कई सौ से अधिक ईमेल भेजने में कुछ समय लग सकता है। कई एमएस टाइम्स एन बहुत समय हो सकता है।

मज़े करें।

+0

लूपिंग का विकल्प मिला: : to => Admin.all.map (&: ईमेल) .join (",") – montrealmike

+2

ठीक है अगर आप अपने सिस्टम के सभी व्यवस्थापकों को ईमेल भेज रहे हैं जो बिल्कुल ठीक है। यह सभी प्राप्तकर्ताओं को "से" फ़ील्ड में रखेगा। न्यूज़लेटर के लिए कोई अच्छा विचार नहीं है, सिवाय इसके कि आप दुनिया के साथ अपने न्यूजलेटर ग्राहक के निजी डेटा (ईमेल पते) को साझा करना पसंद करते हैं। : इसके बजाय बीसीसी: अगर आप ईमेल को कस्टमाइज़ नहीं कर रहे हैं तो अच्छी तरह से काम कर सकते हैं। – Krule

0

कोई मणि जिसे मैं भी जानता हूं और @ क्रूले के उत्तर पर निर्माण कर रहा हूं, यहां रेल में मेलर्स स्थापित करने का एक स्क्रीनकास्ट है।

How to create, preview and send email from your rails app

मैं जब मैं इस पाया कुछ इसी तरह के लिए देख रहा था। मुझे लगता है कि कुछ अनुकूलन के साथ, यह आसानी से न्यूजलेटर ईमेल बनाने के लिए भी इस्तेमाल किया जा सकता है।

पैसे बचाएं! कहीं और खर्च करें।

संबंधित मुद्दे