Web2py - Email e SMS
web2py include funzionalità di invio di e-mail e SMS all'utente. Utilizza le librerie per inviare e-mail e sms.
Configurazione della posta elettronica
La classe in-built vale a dire gluon.tools.Mailclass è usata per inviare email nel framework web2py. Il mailer può essere definito con questa classe.
from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'smtp.example.com:25'
mail.settings.sender = '[email protected]'
mail.settings.login = 'username:password'
L'e-mail del mittente come menzionato nell'esempio sopra insieme alla password verrà autenticata ogni volta che viene inviata un'e-mail.
Se l'utente ha bisogno di sperimentare o utilizzare per qualche scopo di debug, ciò può essere ottenuto utilizzando il codice seguente.
mail.settings.server = 'logging'
Ora, tutte le email non verranno inviate ma verranno registrate nella console.
Invio di un'e-mail
Dopo aver impostato le impostazioni di configurazione per un'e-mail utilizzando l'oggetto di posta, un'e-mail può essere inviata a molti utenti.
La sintassi completa di mail.send() è il seguente -
send(
to, subject = 'Abc',
message = 'None', attachments = [],
cc = [], bcc = [], reply_to = [],
sender = None, encoding = 'utf-8',
raw = True, headers = {}
)
L'implementazione di mail.send() è dato di seguito.
mail.send(
to = ['[email protected]'], subject = 'hello',
reply_to = '[email protected]',
message = 'Hello ! How are you?'
)
Mailrestituisce un'espressione booleana basata sulla risposta del server di posta, che la posta viene ricevuta dall'utente finale. RitornaTrue se riesce a inviare una mail all'utente.
Gli attributi a, cc e bcc include l'elenco di indirizzi e-mail validi per i quali si intende inviare la posta.
Invio di SMS
L'implementazione per l'invio di messaggi SMS differisce dall'invio di e-mail nel framework web2py poiché richiederà un servizio di terze parti che possa inoltrare i messaggi al destinatario. Il servizio di terze parti non è un servizio gratuito e ovviamente differirà in base alla regione geografica (da Paese a Paese).
web2py utilizza un modulo per aiutare a inviare SMS con il seguente processo:
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')
Nell'esempio sopra, SMSCODES è il dizionario gestito da web2py che mappa i nomi delle principali compagnie telefoniche all'indirizzo email postfix.
Le compagnie telefoniche di solito trattano le e-mail provenienti da servizi di terze parti come spam. Un metodo migliore è che le stesse compagnie telefoniche inoltrino l'SMS. Ogni compagnia telefonica include un indirizzo email univoco per ogni numero di cellulare nella sua memoria e l'SMS può essere inviato direttamente all'email.
Nell'esempio sopra,
Il sms_email la funzione accetta un numero di telefono (come stringa), che restituisce l'indirizzo e-mail del telefono.
L'app per scaffolding include diversi file. Uno di questi è models / db.py, che ne importa quattro.
Classi da gluon.tools include anche le librerie di posta e definisce i vari oggetti globali.
L'applicazione di scaffolding definisce anche le tabelle richieste dall'oggetto auth, come db.auth_user. L'applicazione di scaffolding predefinita è progettata per ridurre al minimo il numero di file, non per essere modulare. In particolare, il file del modello,db.py, contiene la configurazione, che in un ambiente di produzione è meglio conservarla in file separati.
Qui, suggeriamo di creare un file di configurazione -
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 = ''