PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पोस्टग्रेज में sp_send_dbmail विकल्प? Postgres ईमेल रिपोर्ट भेजने का आसान तरीका?

आप pgMail . का उपयोग कर सकते हैं PostgreSQL के भीतर से मेल भेजने के लिए।

आवश्यकताएं:

इससे पहले कि आप pgMail का उपयोग कर सकें, आपको TCL/u प्रक्रियात्मक भाषा स्थापित करनी होगी। टीसीएल/यू टीसीएल का एक अप्रतिबंधित संस्करण है जिसे आपका डेटाबेस अपने संग्रहीत कार्यों में उपयोग कर सकता है। अपने सभी डेटाबेस में अप्रतिबंधित TCL प्रक्रियात्मक भाषा को स्थापित करने से पहले, ध्यान रखें कि अपने डेटाबेस में TCL/u भाषा जोड़ते समय आपको पर्याप्त सुरक्षा सावधानियाँ तैयार करनी चाहिए! मैं गलत तरीके से कॉन्फ़िगर किए गए सर्वरों के लिए ज़िम्मेदार नहीं हूँ जो खतरनाक उपयोगकर्ताओं को गलत काम करने की अनुमति देते हैं!

TCL/u प्रक्रियात्मक भाषा को स्थापित करने के लिए, आपके पास PostgreSQL के TCL एक्सटेंशन को संकलित (या उपयोग किए गए बाइनरी पैकेज) और स्थापित होना चाहिए। एक बार जब आप सुनिश्चित हो जाएं कि यह पूरा हो गया है, तो बस एक डेटाबेस व्यवस्थापक के रूप में यूनिक्स शेल प्रांप्ट पर निम्नलिखित टाइप करें।

# createlang pltclu [YOUR DATABASE NAME]

[YOUR DATABASE NAME] . के स्थान पर , उस डेटाबेस का नाम डालें जिसमें आप संग्रहीत कार्यविधि को जोड़ेंगे। यदि आप इसे सभी नए डेटाबेस में जोड़ना चाहते हैं, तो अपने डेटाबेस नाम के रूप में "टेम्पलेट1" का उपयोग करें।

डीबी में नई प्रक्रिया जोड़ने से पहले पहले यह करें:

टेक्स्ट बदलें <ENTER YOUR MAILSERVER HERE> आपके मेलसर्वर के लिए पूरी तरह से योग्य डोमेन नाम के साथ। यानी, mail.server.com.

टेक्स्ट बदलें <ENTER YOUR DATABASESERVER HERE> आपके डेटाबेस सर्वर के लिए पूरी तरह से योग्य डोमेन नाम के साथ। यानी db.server.com.

उपरोक्त कार्य करने के बाद, आप जाने के लिए तैयार हैं।

इस चरण के बाद, pgMail फ़ंक्शन को जोड़ने के लिए psql इंटरफ़ेस का उपयोग करें। बस pgmail.sql फ़ाइल की सामग्री को कॉपी करें और इसे अपनी विंडो में पेस्ट करें। आप इसे सीधे कमांड लाइन से टाइप करके भी लोड कर सकते हैं:

# psql -e [YOUR DATABASE NAME] < pgMail.sql

एक बार जब आप संग्रहीत फ़ंक्शन को स्थापित कर लेते हैं, तो बस प्रक्रिया को निम्नानुसार कॉल करें।

select pgmail('Send From ','Send To ','Subject goes here','Plaintext message body here.');

select pgmail('Send From ','Send To ','Subject goes here','','HTML message body here.');

या अभी, MIME को मल्टीपार्ट करें!

select pgmail('Send From ','Send To ', 'Subject goes here','Plaintext message body here.', 'HTML message body here.');

"भेजें" और "भेजें" दोनों क्षेत्रों में, आप या तो केवल ईमेल या <> में संलग्न ईमेल को सादे टेक्स्ट नाम के साथ शामिल कर सकते हैं।

अपनी स्थापना का परीक्षण करना

मैंने आपके लिए प्रयास करने के लिए एक उदाहरण शामिल किया है। आपको पहले अपने वास्तविक ईमेल पते के साथ example.execute.sql स्क्रिप्ट में स्ट्रिंग को बदलना होगा, और plpgsql भाषा को वैसे ही स्थापित करना होगा जैसे आपने ऊपर pltclu किया था। आप एक createlang [YOUR DATABASE NAME] plpgsql दर्ज करके ऐसा कर सकते हैं ।

एक बार यह पूरा हो जाने के बाद, पहले example.setup.sql चलाएँ। फिर example.execute.sql स्क्रिप्ट निष्पादित करें। बशर्ते सब कुछ ठीक चल रहा हो, आपको अपने मेलबॉक्स में 2 ईमेल दिखाई देंगे। इस उदाहरण को हटाने के लिए, example.cleanup.sql निष्पादित करें स्क्रिप्ट।

एसएमटीपी प्रमाणीकरण

pgMail SMTP प्रमाणीकरण का समर्थन नहीं करता है। इसका उपयोग करने वाले अधिकांश लोग या तो स्थानीय कतार के लिए डेटाबेस सर्वर पर एक स्थानीय मेलसर्वर स्थापित करते हैं और फिर उस सेटअप का उपयोग किसी भी आवश्यक रिलेइंग के लिए करते हैं (ऑथ के साथ)। या, वैकल्पिक रूप से, डेटाबेस सर्वर द्वारा उपयोग किए गए उस आईपी से रिलेइंग की अनुमति देने के लिए /etc/mail/access (या समकक्ष) फ़ाइल में आमतौर पर एक विशेष नियम बनाया जाता है। जाहिर है, बाद वाला विकल्प GMail के साथ काम नहीं करता है।

इसके पीछे तर्क यह है कि बड़ी नौकरियों के लिए pgMail के लेन-देन की प्रकृति में प्रमाणीकरण समस्याग्रस्त होगा। आदर्श समाधान डेटाबेस सर्वर पर एक EXIM सर्वर को छोड़ना होगा और स्मार्ट रिले सर्वर के रूप में किसी भी प्रकार के प्रमाणीकरण को संभालना होगा। यहां एक लिंक दिया गया है जिसमें SMTP सर्वर को कैसे सेट करें के बारे में अधिक जानकारी है। ।

दस्तावेज़ीकरण:http://brandolabs.com/pgmail



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. repmgr की घोषणा 2.0RC2

  2. idx autoincrement के साथ postgresql sqlalchemy में डेटाफ्रेम डालें

  3. Psycopg2 के साथ Postgres के लिए SQL LIKE मान से बचें

  4. क्या SQL सर्वर प्रोफाइलर के बराबर PostgreSQL है?

  5. आदेश देते समय PostgreSQL डैश पर ध्यान नहीं देता