Web2py - ईमेल और एसएमएस

web2py में उपयोगकर्ता को ई-मेल और एसएमएस भेजने की कार्यक्षमता शामिल है। यह ईमेल और एसएमएस भेजने के लिए पुस्तकालयों का उपयोग करता है।

ईमेल सेट करना

में निर्मित वर्ग अर्थात् gluon.tools.Mailweb2py फ्रेमवर्क में ईमेल भेजने के लिए क्लास का उपयोग किया जाता है। मेलर को इस वर्ग के साथ परिभाषित किया जा सकता है।

from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'smtp.example.com:25'
mail.settings.sender = '[email protected]'
mail.settings.login = 'username:password'

पासवर्ड के साथ उपरोक्त उदाहरण में प्रेषित ईमेल को हर बार प्रमाणित किया जाएगा जब कोई ईमेल भेजा जाता है।

यदि उपयोगकर्ता को कुछ डिबगिंग उद्देश्य के लिए प्रयोग या उपयोग करने की आवश्यकता है, तो यह निम्नलिखित कोड का उपयोग करके प्राप्त किया जा सकता है।

mail.settings.server = 'logging'

अब, सभी ईमेल नहीं भेजे जाएंगे, लेकिन यह कंसोल में लॉग इन किया जाएगा।

एक ईमेल भेजा जा रहा है

एक बार जब हमने मेल ऑब्जेक्ट का उपयोग करके ईमेल के लिए कॉन्फ़िगरेशन सेटिंग्स निर्धारित की हैं, तो कई उपयोगकर्ताओं को एक ईमेल भेजा जा सकता है।

का पूरा वाक्य विन्यास mail.send() इस प्रकार है -

send(
   to, subject = 'Abc',
   message = 'None', attachments = [],
   cc = [], bcc = [], reply_to = [],
   sender = None, encoding = 'utf-8',
   raw = True, headers = {}
)

इसका कार्यान्वयन mail.send() नीचे दिया गया है।

mail.send(
   to = ['[email protected]'], subject = 'hello',
   reply_to = '[email protected]',
   message = 'Hello ! How are you?'
)

Mailमेलिंग सर्वर की प्रतिक्रिया के आधार पर एक बूलियन अभिव्यक्ति देता है, कि मेल अंतिम उपयोगकर्ता द्वारा प्राप्त किया जाता है। यह लौट आता हैTrue यदि यह उपयोगकर्ता को एक ईमेल भेजने में सफल होता है।

के गुण, cc तथा bcc इसमें मान्य ईमेल पतों की सूची शामिल है जिसके लिए मेल भेजने का इरादा है।

एसएमएस भेजना

एसएमएस संदेश भेजने के लिए कार्यान्वयन web2py फ्रेमवर्क में ईमेल भेजने से अलग है क्योंकि इसके लिए तीसरे पक्ष की सेवा की आवश्यकता होगी जो संदेशों को रिसीवर तक पहुंचा सकती है। तृतीय पक्ष सेवा एक निशुल्क सेवा नहीं है और यह स्पष्ट रूप से भौगोलिक क्षेत्र (देश से देश तक) के आधार पर भिन्न होगी।

web2py निम्नलिखित प्रक्रिया के साथ एसएमएस भेजने में मदद करने के लिए एक मॉड्यूल का उपयोग करता है -

from gluon.contrib.sms_utils
import SMSCODES, sms_email
email = sms_email('1 (111) 111-1111','T-Mobile USA (abc)')
mail.send(to = email, subject = 'test', message = 'test')

उपरोक्त उदाहरण में, SMSCODES यह वेब 2py द्वारा बनाए गए शब्दकोश है जो प्रमुख फोन कंपनियों के नामों को ईमेल पते पर उपसर्ग करता है।

टेलीफोन कंपनियां आमतौर पर स्पैम के रूप में तृतीय पक्ष सेवाओं से उत्पन्न ईमेल का इलाज करती हैं। एक बेहतर तरीका यह है कि फोन कंपनियां खुद एसएमएस को रिलेट करें। हर फोन कंपनी के स्टोरेज में हर मोबाइल नंबर के लिए एक यूनिक ईमेल एड्रेस शामिल होता है और एसएमएस सीधे ईमेल पर भेजा जा सकता है।

उपरोक्त उदाहरण में,

  • sms_email फ़ंक्शन फोन नंबर लेता है (स्ट्रिंग के रूप में), जो फोन का ईमेल पता लौटाता है।

  • मचान ऐप में कई फाइलें शामिल हैं। उनमें से एक मॉडल / db.py है, जो चार आयात करता है।

  • से कक्षाएं gluon.tools मेल लाइब्रेरी को भी शामिल करें और विभिन्न वैश्विक वस्तुओं को परिभाषित करें।

  • मचान एप्लिकेशन को भी ऑब्जेक्ट जैसे कि ऑब्जेक्ट के द्वारा आवश्यक तालिकाओं को परिभाषित करता है db.auth_user। डिफ़ॉल्ट मचान एप्लिकेशन को फ़ाइलों की संख्या को कम करने के लिए डिज़ाइन किया गया है, न कि मॉड्यूलर होने के लिए। विशेष रूप से, मॉडल फ़ाइल,db.py, विन्यास शामिल है, जो एक उत्पादन वातावरण में, अलग-अलग फ़ाइलों में सबसे अच्छा रखा जाता है।

यहाँ, हम एक विन्यास फाइल बनाने का सुझाव देते हैं -

from gluon.storage import Storage
   settings = Storage()
   settings.production = False
   
   if
      settings.production:
      settings.db_uri = 'sqlite://production.sqlite'
      settings.migrate = False
   else:
      settings.db_uri = 'sqlite://development.sqlite'
      settings.migrate = True
      settings.title = request.
      settings.subtitle = 'write something here'
		
      settings.author = 'you'
      settings.author_email = '[email protected]'
		
      settings.keywords = ''
      settings.description = ''
      settings.layout_theme = 'Default'
      settings.security_key = 'a098c897-724b-4e05-b2d8-8ee993385ae6'
		
      settings.email_server = 'localhost'
      settings.email_sender = '[email protected]'
      settings.email_login = ''
		
      settings.login_method = 'local'
      settings.login_config = ''