Web2py - E-Mail & SMS
web2py enthält Funktionen zum Senden von E-Mails und SMS an den Benutzer. Es verwendet Bibliotheken, um E-Mails und SMS zu senden.
E-Mail einrichten
Die eingebaute Klasse nämlich gluon.tools.MailKlasse wird verwendet, um E-Mails im web2py-Framework zu senden. Der Mailer kann mit dieser Klasse definiert werden.
from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'smtp.example.com:25'
mail.settings.sender = '[email protected]'
mail.settings.login = 'username:password'
Die im obigen Beispiel erwähnte Absender-E-Mail wird zusammen mit dem Kennwort jedes Mal authentifiziert, wenn eine E-Mail gesendet wird.
Wenn der Benutzer experimentieren oder für einen Debugging-Zweck verwenden muss, kann dies mit dem folgenden Code erreicht werden.
mail.settings.server = 'logging'
Jetzt werden nicht alle E-Mails gesendet, sondern in der Konsole protokolliert.
Eine E-Mail senden
Sobald wir die Konfigurationseinstellungen für eine E-Mail mithilfe eines E-Mail-Objekts festgelegt haben, kann eine E-Mail an viele Benutzer gesendet werden.
Die vollständige Syntax von mail.send() ist wie folgt -
send(
to, subject = 'Abc',
message = 'None', attachments = [],
cc = [], bcc = [], reply_to = [],
sender = None, encoding = 'utf-8',
raw = True, headers = {}
)
Die Implementierung von mail.send() ist unten angegeben.
mail.send(
to = ['[email protected]'], subject = 'hello',
reply_to = '[email protected]',
message = 'Hello ! How are you?'
)
MailGibt einen booleschen Ausdruck zurück, der auf der Antwort des Mailing-Servers basiert, dass die Mail vom Endbenutzer empfangen wird. Es kehrt zurückTrue wenn es gelingt, eine E-Mail an den Benutzer zu senden.
Die Attribute zu, cc und bcc Enthält die Liste der gültigen E-Mail-Adressen, für die die E-Mail gesendet werden soll.
SMS senden
Die Implementierung zum Senden von SMS-Nachrichten unterscheidet sich vom Senden von E-Mails im web2py-Framework, da ein Drittanbieter-Service erforderlich ist, der die Nachrichten an den Empfänger weiterleiten kann. Der Drittanbieter-Dienst ist kein kostenloser Dienst und unterscheidet sich offensichtlich je nach geografischer Region (von Land zu Land).
web2py verwendet ein Modul, um das Senden von SMS mit dem folgenden Vorgang zu unterstützen:
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')
Im obigen Beispiel ist SMSCODES ist das von web2py verwaltete Wörterbuch, das die Namen der wichtigsten Telefongesellschaften dem Postfix der E-Mail-Adresse zuordnet.
Telefongesellschaften behandeln E-Mails, die von Diensten Dritter stammen, normalerweise als Spam. Eine bessere Methode ist, dass die Telefongesellschaften die SMS selbst weiterleiten. Jede Telefongesellschaft hat eine eindeutige E-Mail-Adresse für jede Handynummer in ihrem Speicher und die SMS kann direkt an die E-Mail gesendet werden.
Im obigen Beispiel ist
Das sms_email Die Funktion verwendet eine Telefonnummer (als Zeichenfolge), die die E-Mail-Adresse des Telefons zurückgibt.
Die Gerüst-App enthält mehrere Dateien. Eines davon ist models / db.py, das vier importiert.
Klassen von gluon.tools Schließen Sie auch E-Mail-Bibliotheken ein und definieren Sie die verschiedenen globalen Objekte.
Die Gerüstanwendung definiert auch Tabellen, die für das Auth-Objekt erforderlich sind, z db.auth_user. Die Standard-Gerüstanwendung wurde entwickelt, um die Anzahl der Dateien zu minimieren und nicht modular zu sein. Insbesondere die Modelldatei,db.py, enthält die Konfiguration, die in einer Produktionsumgebung am besten in separaten Dateien gespeichert wird.
Hier empfehlen wir die Erstellung einer Konfigurationsdatei -
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 = ''