Introducció
Flask-Mail és una extensió per a Flask que facilita l'enviament de correus electrònics des de la teva aplicació web. Aquesta extensió proporciona una interfície senzilla per configurar i enviar correus electrònics, la qual cosa és útil per a funcionalitats com la verificació d'usuaris, notificacions, etc.
Instal·lació
Per començar a utilitzar Flask-Mail, primer has d'instal·lar l'extensió. Pots fer-ho utilitzant pip:
Configuració de Flask-Mail
Després d'instal·lar Flask-Mail, has de configurar-lo en la teva aplicació Flask. A continuació es mostra un exemple de com configurar Flask-Mail en el teu fitxer app.py
:
from flask import Flask from flask_mail import Mail, Message app = Flask(__name__) # Configuració de Flask-Mail app.config['MAIL_SERVER'] = 'smtp.gmail.com' app.config['MAIL_PORT'] = 587 app.config['MAIL_USE_TLS'] = True app.config['MAIL_USERNAME'] = '[email protected]' app.config['MAIL_PASSWORD'] = 'la_teva_contrasenya' mail = Mail(app)
Enviament de Correus Electrònics
Un cop configurat Flask-Mail, pots començar a enviar correus electrònics. A continuació es mostra un exemple de com enviar un correu electrònic:
@app.route('/send_mail') def send_mail(): msg = Message('Hola des de Flask-Mail', sender='[email protected]', recipients=['[email protected]']) msg.body = 'Aquest és el cos del correu electrònic' mail.send(msg) return 'Correu electrònic enviat!'
Exemple Complet
A continuació es mostra un exemple complet d'una aplicació Flask que envia un correu electrònic:
from flask import Flask, render_template from flask_mail import Mail, Message app = Flask(__name__) # Configuració de Flask-Mail app.config['MAIL_SERVER'] = 'smtp.gmail.com' app.config['MAIL_PORT'] = 587 app.config['MAIL_USE_TLS'] = True app.config['MAIL_USERNAME'] = '[email protected]' app.config['MAIL_PASSWORD'] = 'la_teva_contrasenya' mail = Mail(app) @app.route('/') def index(): return render_template('index.html') @app.route('/send_mail') def send_mail(): msg = Message('Hola des de Flask-Mail', sender='[email protected]', recipients=['[email protected]']) msg.body = 'Aquest és el cos del correu electrònic' mail.send(msg) return 'Correu electrònic enviat!' if __name__ == '__main__': app.run(debug=True)
Exercicis Pràctics
Exercici 1: Enviament de Correus amb HTML
Modifica l'exemple anterior per enviar un correu electrònic amb contingut HTML.
Solució:
@app.route('/send_mail_html') def send_mail_html(): msg = Message('Hola des de Flask-Mail', sender='[email protected]', recipients=['[email protected]']) msg.html = '<b>Aquest és el cos del correu electrònic en HTML</b>' mail.send(msg) return 'Correu electrònic HTML enviat!'
Exercici 2: Enviament de Correus amb Fitxers Adjuntats
Modifica l'exemple per enviar un correu electrònic amb un fitxer adjunt.
Solució:
@app.route('/send_mail_attachment') def send_mail_attachment(): msg = Message('Hola des de Flask-Mail', sender='[email protected]', recipients=['[email protected]']) msg.body = 'Aquest correu electrònic conté un fitxer adjunt.' with app.open_resource('path/al/teu/fitxer.pdf') as fp: msg.attach('fitxer.pdf', 'application/pdf', fp.read()) mail.send(msg) return 'Correu electrònic amb fitxer adjunt enviat!'
Errors Comuns i Consells
-
Error d'Autenticació: Si rebs un error d'autenticació, assegura't que el teu nom d'usuari i contrasenya són correctes. Si estàs utilitzant Gmail, potser necessitis permetre "aplicacions menys segures" en la configuració del teu compte de Google.
-
Port Incorrecte: Assegura't que estàs utilitzant el port correcte per al teu servidor de correu. Per a Gmail, el port és 587 per a TLS i 465 per a SSL.
-
Configuració de TLS/SSL: Assegura't que la configuració de TLS/SSL és correcta. Per a Gmail,
MAIL_USE_TLS
hauria de serTrue
iMAIL_USE_SSL
hauria de serFalse
.
Conclusió
En aquesta secció, hem après com utilitzar Flask-Mail per enviar correus electrònics des de la teva aplicació Flask. Hem cobert la configuració bàsica, l'enviament de correus electrònics simples, l'enviament de correus amb HTML i l'enviament de correus amb fitxers adjuntats. Amb aquests coneixements, pots començar a integrar funcionalitats de correu electrònic en la teva aplicació web Flask.
Curs de Desenvolupament Web amb Flask
Mòdul 1: Introducció a Flask
- Què és Flask?
- Configuració del Teu Entorn de Desenvolupament
- Creant la Teva Primera Aplicació Flask
- Entenent l'Estructura d'una Aplicació Flask
Mòdul 2: Conceptes Bàsics de Flask
- Enrutament i Mapeig d'URL
- Gestió de Mètodes HTTP
- Renderització de Plantilles amb Jinja2
- Treballant amb Fitxers Estàtics
Mòdul 3: Formularis i Entrada d'Usuari
Mòdul 4: Integració de Bases de Dades
- Introducció a Flask-SQLAlchemy
- Definició de Models
- Realització d'Operacions CRUD
- Migracions de Bases de Dades amb Flask-Migrate
Mòdul 5: Autenticació d'Usuaris
- Registre d'Usuaris
- Inici i Tancament de Sessió d'Usuaris
- Hashing de Contrasenyes
- Gestió de Sessions d'Usuaris
Mòdul 6: Conceptes Avançats de Flask
- Blueprints per a Aplicacions Grans
- Gestió d'Errors
- Pàgines d'Error Personalitzades
- Registre i Depuració
Mòdul 7: APIs RESTful amb Flask
- Introducció a les APIs RESTful
- Creació de Punts Finals RESTful
- Gestió de Dades JSON
- Autenticació per a APIs
Mòdul 8: Desplegament i Producció
- Configuració de Flask per a Producció
- Desplegament a Heroku
- Desplegament a AWS
- Monitorització i Optimització del Rendiment
Mòdul 9: Proves i Millors Pràctiques
- Proves Unitàries amb Flask
- Proves d'Integració
- Cobertura de Proves
- Millors Pràctiques per al Desenvolupament amb Flask