दिलचस्प पोस्ट
एंड्रॉइड स्टूडियो: संकलन करते समय एपीके मेटा-आईएनएफ / डिप्लेंजेस में प्रतिलिपि बनाई गई डुप्लिकेट फाइलें मैं \ n और vice versa के बजाय PHP_EOL का उपयोग कब करता हूं? अजाक्स / Jquery क्लाइंट समस्या एंड्रॉइड: कैसे आवेदन रक्षा एप काम करता है? Android NDK: लक्ष्य बनाने के लिए कोई नियम नहीं है Android के लिए लंगड़ा एमपी 3 एन्कोडर संकलन कैसे matplotlib में एक घनत्व साजिश बनाने के लिए? वर्षों में दो तिथियों के बीच अंतर, महीनों, जावास्क्रिप्ट में दिन एक्लिप्स प्रोजेक्ट पर Google Play सेवाएं जोड़ें कोडिग्नर सक्रिय रिकॉर्ड में सम्मिलित क्वेरी के बाद अंतिम डालें आईडी कैसे प्राप्त करें रूबी में एक उपप्रोसेस शुरू करने के प्रत्येक पद्धति का उपयोग कब किया जाए मैं कैसे "पूर्ववत करें" एक – सििंगल-शाखा क्लोन करूँ? HTTP और HTTPS दोनों अनुरोधों के लिए पूर्ण URL और सर्लेट में क्वेरी स्ट्रिंग प्राप्त करें एक रिक्त सूचक और एक शून्य सूचक के बीच अंतर क्या है? मेमोरी क्षमता और स्ट्रिंग के प्रदर्शन। रीप्लस। नेट फ्रेमवर्क क्या printf का आउटपुट है ("% d% d", c ++, c); भी अपरिभाषित?

मैं PostgreSQL ट्रिगर से ईमेल कैसे भेज सकता हूं?

मैं ट्रिगर सेट करने के लिए pgsql का उपयोग कर रहा हूं, जब टेबल डेटासेट अपडेट किया जाता है (स्थिति को समाप्त करने के लिए परिवर्तित करें) यह स्वचालित रूप से ई-मेल अकाउंट को ई-मेल खाते को डेटासेट ईमेल वैल्यू भेजकर सर्वर में इस ईमेल को सहेज देगा

लेकिन मैं नहीं जानता कि कैसे ट्रिगर फ़ंक्शन में ईमेल भेजने और सर्वर में ईमेल भेजने के लिए लिखना है। पहले ही, आपका बहुत धन्यवाद

पीजी संस्करण 9.1 है, और CentOS 5.8

CREATE OR REPLACE FUNCTION sss() RETURNS trigger AS $BODY$begin if(NEW.publisher== 'aaaa') then //send email and save to server 192.168.171.64 end if; return NEW; end $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION sss() OWNER TO postgres; GRANT EXECUTE ON FUNCTION sss() TO postgres; 

Solutions Collecting From Web of "मैं PostgreSQL ट्रिगर से ईमेल कैसे भेज सकता हूं?"

उत्कृष्ट-के रूप में हमेशा की तरह depesz लेख , और पीजी-संदेश-कतार देखें ।

डेटाबेस से सीधे ईमेल भेजना एक महान विचार नहीं हो सकता है। क्या होगा यदि DNS रिजोल्यूशन धीमा है और हर चीज 30 सेकेंड के लिए लटकी जाती है तो बार बाहर? क्या होगा अगर आपके मेल सर्वर में वॉबली हो रही है और संदेश स्वीकार करने में 5 मिनट लगते हैं ? जब तक आप max_connections पर नहीं max_connections और आप कुछ भी नहीं कर सकते हैं, तब तक आप अपने ट्रिगर में डेटाबेस सत्रों को रख दिया जाएगा, लेकिन लेनदेन को मैन्युअल रूप से रद्द करने से शुरू या प्रतीक्षा करें

मैं क्या सुझाव देता हूं कि आपका ट्रिगर एक सहायक NOTIFY कर रहा है जो स्थायी रूप से चल रहा है और डीबी (लेकिन लेनदेन में नहीं) से जुड़ा है।

आपके सभी ट्रिगर को कतार तालिका में एक पंक्ति में शामिल करना होगा और एक NOTIFY भेजें। आपकी स्क्रिप्ट को NOTIFY संदेश मिलता है क्योंकि यह इसके लिए LISTEN में पंजीकृत है, कतार तालिका की जांच करता है, और शेष करता है

आप जो भी भाषा सुविधाजनक हैं, में सहायक कार्यक्रम लिख सकते हैं; मैं आमतौर पर psycopg2 साथ अजगर का उपयोग करें

वह स्क्रिप्ट डेटाबेस में पाई गई जानकारी के आधार पर ईमेल भेज सकती है। आपको पीएल / पीजीएसक्यूएल में सभी बदसूरत पाठ स्वरूपण करने की ज़रूरत नहीं है, आप चीजों को एक अधिक शक्तिशाली स्क्रिप्टिंग भाषा में एक टेम्पलेट में स्थानांतरित कर सकते हैं, और जब कोई NOTIFY आता है, तो बस डेटाबेस से चर डेटा प्राप्त करें।

इस दृष्टिकोण से आपका सहायक प्रत्येक संदेश भेज सकता है और उसके बाद केवल कतार तालिका से जानकारी निकाल सकता है इस तरह अगर आपके मेल सिस्टम के साथ क्षणिक समस्याएं हैं जो विफल करने के लिए भेजने का कारण बनती हैं, तो आपने जानकारी नहीं खोई है और जब तक आप सफल नहीं हो जाते तब तक इसे भेजने का प्रयास जारी रख सकते हैं।

यदि आप वास्तव में डेटाबेस में ऐसा करना चाहते हैं, तो PgMail देखें।

  1. स्थानीय MTA का उपयोग करें (यह आपको एकाधिक ऐप्स के लिए केंद्रीयकृत SMTP कॉन्फ़िगरेशन देता है)
  2. स्थानीय एमटीए रिले को अपने असली एमटीए (यह आपको एसिंक समर्थन देता है, अनिवार्य रूप से)
  3. अगर खिड़कियां, blat SMTP कमांड लाइन क्लाइंट का उपयोग करें। सुनिश्चित करें कि ब्लाट का पथ पैट में है
  4. आपको संभवतः यह अपाचे ऊंट या पीजीएजेंट का उपयोग करना चाहिए, और सीधे ट्रिगर में नहीं

यह विंडोज पर काम करेगा अगर पोस्टग्रेस सुपरयुजर ट्रिगर फ़ंक्शन सुरक्षा डिफेंडर होना चाहिए। लिनक्स पर sendmail के लिए समान:

 ... copy ( select 'my email body' ) to program 'blat -to to@example.com -from from@example.com -subject "My Subject" -server localhost:25' with ( format text ); ... 

~ 60 एमएस

आप मेल भेजने के लिए प्लास्टर्लू का उपयोग कर सकते हैं

यह लिंक ट्रिगर पर इसका उपयोग करने का एक उदाहरण दिखाता है

आपके पास pgmail का उपयोग करने की संभावना है (यदि आपको इसे इंस्टॉल करने की अनुमति है):

यदि आप brandolabs.com पर दिए गए निर्देशों का पालन करते हैं तो यह नीचे आता है

 pgmail('Send From ','Send To ','Subject goes here','Message body here.') 

मैं @ क्रेग घंटी के साथ सहमत हूं आप कोड की 100 लाइनों के तहत पायथन में कुछ कोड कर सकते हैं मैं निम्नलिखित पायथन पुस्तकालयों का उपयोग करने की सिफारिश करेगा: psycopg2, smtplib आप कितनी बार परिवर्तनों के बारे में सूचित करना चाहते हैं इसके आधार पर, आप एक क्रोनबोज़ चला सकते हैं (आपके काम के माहौल के आधार पर) इस तरह से जब भी कोई परिवर्तन होता है, हर बार एक सूचना भेजने की बजाय आप डेटाबेस में एक से अधिक परिवर्तन एकत्र कर सकते हैं।