2011-01-19 16 views
8

ईमेल टेम्पलेट्स से गाया जाता है, टेम्पलेट्स "grails_app/दृश्य" में देखा जाता है:Grails के साथ जीएसपी मेल टेम्पलेट्स को बाहरी कैसे करें?

mailService.sendMail { 
    from sender 
    to recepient.email 
    subject "Don't forget" 
    body (view: "/emails/reminder", 
     model:[recepient: recepient, document: document]) 
} 

मैं कैसे फाइल सिस्टम में आवेदन (युद्ध फ़ाइल) के बाहर मेल टेम्पलेट रख सकते हैं?

उत्तर

8

पास दो विकल्प होते हैं: डेटाबेस में पाठ के रूप में

  1. स्टोर अपने टेम्पलेट, और उन्हें अद्यतन करने के लिए डिफ़ॉल्ट crud कोड उत्पन्न करते हैं। फिर आप डोमेन ऑब्जेक्ट्स का उपयोग कर डेटाबेस से डेटा खींचने के लिए ईमेल कोड को संशोधित करेंगे।
  2. टेम्पलेट्स को ग्रोवी कॉन्फ़िगरेशन फ़ाइल में स्ट्रिंग के रूप में स्टोर करें। ग्रोवी बाहरी कॉन्फ़िगरेशन फ़ाइलों का उपयोग कर सकते हैं जिन्हें पैक किए गए एप्लिकेशन से अलग से संपादित किया जा सकता है। विवरण के लिए this blog post देखें।

एक बार जब आप अपनी स्ट्रिंग प्राप्त कर लेते हैं, तो आप दृश्य बनाने के लिए किसी भी मनमानी स्ट्रिंग के साथ एक Grails नियंत्रक से जीएसपी इंजन का उपयोग कर सकते हैं। अधिक जानकारी के लिए this blog post देखें।

संक्षेप में, आप अपने टेम्पलेट को सूचीबद्ध विकल्पों में से किसी एक का उपयोग करके स्ट्रिंग के रूप में स्टोर करेंगे और फिर टेम्पलेट स्ट्रिंग को पुनर्प्राप्त करने के बाद दृश्य बनाने के लिए Grails GSP इंजन का उपयोग करें।

+1

लेकिन मैं एक जीएसपी स्ट्रिंग (एक सेवा के भीतर) कैसे प्रस्तुत करूं? – deamon

+0

अद्यतन उत्तर देखें। – Jared

+0

@deamon: मुझे लगता है कि जेरेड का जवाब काफी अच्छा है। लेकिन यहां यह विचार स्पष्ट किया जाना चाहिए: प्रेषण में "शरीर" के लिए इनपुटमेल फ़ंक्शन एक साधारण स्ट्रिंग है। आपको केवल "शरीर" में स्ट्रिंग (शायद HTML सजावट के साथ) को पारित करने की आवश्यकता है। ध्यान दें कि यदि आप HTML फ़ाइल भेजना चाहते हैं, तो आपको अन्य प्रासंगिक विकल्प चालू करना होगा। –

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