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:

pip install Flask-Mail

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

  1. 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.

  2. 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.

  3. Configuració de TLS/SSL: Assegura't que la configuració de TLS/SSL és correcta. Per a Gmail, MAIL_USE_TLS hauria de ser True i MAIL_USE_SSL hauria de ser False.

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

Mòdul 2: Conceptes Bàsics de Flask

Mòdul 3: Formularis i Entrada d'Usuari

Mòdul 4: Integració de Bases de Dades

Mòdul 5: Autenticació d'Usuaris

Mòdul 6: Conceptes Avançats de Flask

Mòdul 7: APIs RESTful amb Flask

Mòdul 8: Desplegament i Producció

Mòdul 9: Proves i Millors Pràctiques

Mòdul 10: Extensions i Ecosistema de Flask

© Copyright 2024. Tots els drets reservats