English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Le applicazioni web basate su Web necessitano solitamente di una funzione per inviare email agli utenti/clienti. L'estensione Flask-Mail rende molto semplice configurare un'interfaccia per qualsiasi server di posta elettronica.
All'inizio, l'estensione Flask-Mail poteva essere installata utilizzando lo strumento pip, come mostrato di seguito -
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Data: 2020-08-08 pip install Flask-Mail
Poi è necessario configurare Flask-Mail impostando i valori dei seguenti parametri dell'applicazione.
Numero | Parametri | Descrizione |
1 | MAIL_SERVER | Nome/IP del server di posta |
2 | MAIL_PORT | Porta del server utilizzato |
3 | MAIL_USE_TLS | Abilitare/Disabilitare la crittografia TLS |
4 | MAIL_USE_SSL | Abilitare/Disabilitare la crittografia SSL |
5 | MAIL_DEBUG | Supporto di debug, predefinito è lo stato di debug dell'applicazione Flask |
6 | MAIL_USERNAME | Nome utente del mittente |
7 | MAIL_PASSWORD | Password del mittente |
8 | MAIL_DEFAULT_SENDER | Impostare l'indirizzo email predefinito del mittente |
9 | MAIL_MAX_EMAILS | Impostare il numero massimo di email da inviare |
10 | MAIL_SUPPRESS_SEND | Se app.testing è impostato su true, viene inviato il messaggio bloccato |
11 | MAIL_ASCII_ATTACHMENTS | Se impostato su true, il nome del file aggiuntivo viene convertito in ASCII |
Il modulo flask-mail contiene le definizioni delle seguenti classi importanti.
Gestisce le richieste di messaggi email. Il costruttore della classe utilizza la seguente forma -
Numero | Metodo | Descrizione |
1 | send() | Invia il contenuto dell'oggetto Message |
2 | connect() | Apri una connessione con l'host di posta |
3 | send_message() | Invia l'oggetto del messaggio |
Essa incapsula una email, il costruttore della classe Message ha diversi parametri -
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Data: 2020-08-08 flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, reply-to, date, charset, extra_headers, mail_options, rcpt_options)
attach() - Aggiungi un allegato al messaggio. Questo metodo accetta i seguenti parametri - filename - Nome del file da allegare content_type - Tipo MIME del file data - Dati del file originale disposition - Gestione del contenuto, se presente.
add_recipient() - Aggiungi un altro destinatario al messaggio
Nell'esempio seguente, il server SMTP del servizio Gmail di Google viene utilizzato come MAIL_SERVER per la configurazione di Flask-Mail.
Passo 1 - Importa le classi Mail e Message dal modulo flask-mail nel codice.
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Data: 2020-08-08 from flask_mail import Mail, Message
Passo 2 - Poi configura Flask-Mail secondo le seguenti impostazioni.
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Data: 2020-08-08 app.config['MAIL_SERVER']='smtp.gmail.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USERNAME'] = '[email protected]' app.config['MAIL_PASSWORD'] = '*****' app.config['MAIL_USE_TLS'] = False app.config['MAIL_USE_SSL'] = True
Passo 3 - Crea un'istanza della classe Mail.
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Data: 2020-08-08 mail = Mail(app)
Passo 4 - Imposta l'oggetto del messaggio in un funzione Python mappata dall'URL (‘/‘).
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Data: 2020-08-08 @app.route("/") def index(): msg = Message('Hello', sender='[email protected]', recipients=['[email protected]']) msg.body = "Questo è il corpo dell'email" mail.send(msg) return "Inviato"
Passo 5 - Il codice completo è il seguente. Esegui lo script seguente nel Python Shell e accedi all'URL: http://localhost:5000/.
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Data: 2020-08-08 from flask import Flask from flask_mail import Mail, Message app = Flask(__name__) mail=Mail(app) app.config['MAIL_SERVER']='smtp.gmail.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USERNAME'] = '[email protected]' app.config['MAIL_PASSWORD'] = '*****' app.config['MAIL_USE_TLS'] = False app.config['MAIL_USE_SSL'] = True mail = Mail(app) @app.route("/") def index(): msg = Message('Hello', sender='[email protected]', recipients=['[email protected]']) msg.body = "Hello Flask message sent from Flask-Mail" mail.send(msg) return "Inviato" if __name__ == '__main__': app.run(debug=True)
Attenzione, le funzionalità non sicure integrate nel servizio Gmail potrebbero bloccare questo tentativo di login, potrebbe essere necessario ridurre il livello di sicurezza. Accedi al tuo account Gmail e visita Questo linkaumentando la sicurezza.