ctrl-alt-d / django-aula

Gestió de presencia, incidències i més en centres educatius i acadèmies.
Other
18 stars 28 forks source link

Nou mail backend #267

Closed amorilla closed 4 months ago

amorilla commented 4 months ago

Actualment, el Djau, utilitza usuari i contrasenya per enviar mails. Google no deixarà fer-ho, elimina l’accés d’aplicacions menys segures. Tenen previst fer el canvi aquest estiu. Possibles alternatives: Contrasenya d’aplicació https://support.google.com/mail/answer/185833?hl=ca Compte de servei https://developers.google.com/identity/protocols/oauth2/service-account#creatinganaccount

Aquest pull request inclou un nou backend per fer servir comptes de servei. Correspon a https://github.com/slicefox/django-gsuite-email. Perquè funcioni he hagut de fer alguns canvis en el projecte d'aquest backend, de moment no han incorporat el pull request, així que he preparat un paquet personalitzat djau-gsuite-email. Ja he preparat el requirements.txt de manera adequada. Si en algun moment actualitzen el pull request, ja modificaré requeriments.

juaky commented 1 week ago

Hola @amorilla Acabo d'actualitzar el meu entorn de proves del djAu i veig que em tira errors relacionats amb aquest PR. Exactament diu:

django.core.exceptions.ImproperlyConfigured: GMAIL_USER mandatory if GSUITE_USER_FROM_EMAIL is not True, set it in settings django.core.exceptions.ImproperlyConfigured: GSUITE_CREDENTIALS_FILE is not set, set it in settings or as environment variable

He afegit al settings.py aquests dos paràmetres:

GSUITE_USER_FROM_EMAIL = True
GSUITE_CREDENTIALS_FILE = '/dades/fitxers_privats_djAu/fitxer-credentials-gsuite'     # He hagut de crear abans el fitxer

Ara no tira errors. Seguint el readme de la gsuite, he provat d'enviar un mail, així:

from django.core.mail import send_mail

send_mail(
    'Subject here',
    'Here is the message.',
    'from@example.com',
    ['to@example.com'],
    fail_silently=False,
)

I s'ha enviat correctament. Però jo no he fet absolutament res del que indica al GitHub de la Gsuite: demana crear un fitxer de credencials seguint aquest tutorial. Al djAu utilitzarà aquest mètode (la gsuite en comptes de contrasenya d'apicació) per defecte?

Merci!!!!!!

amorilla commented 1 week ago

El Djau farà servir el backend indicat a EMAIL_BACKEND. Si fas servir contrasenya d'aplicació, continuarà com sempre. El mòdul django-gsuite-email comprova els settings quan es carrega, encara que no es faci servir, per això ha aparegut l'error. Per solucionar-ho, he afegit els settings per defecte a common.py. Faré un pull request.

Salutacions.