KazV2/dockers/apikaz/source/resources/quota.py
hpl f796f01d40 Modifications qui seront validées :
modifié :         ../app.py
	nouveau fichier : cloud.py
	nouveau fichier : common_imports.py
	nouveau fichier : config.py
	nouveau fichier : dns.py
	nouveau fichier : kaz_user.py
	nouveau fichier : ldap.py
	nouveau fichier : mattermost.py
	nouveau fichier : paheko.py
	nouveau fichier : password.py
	nouveau fichier : quota.py
	nouveau fichier : sympa.py
	nouveau fichier : test.py
2024-08-20 01:53:17 +02:00

65 lines
2.1 KiB
Python

from resources.common_imports import *
#les variables globales minimum
from resources.config import serveur_imap, mot_de_passe_mail
class Quota(Resource):
#https://doc.dovecot.org/configuration_manual/authentication/master_users/
#https://blog.debugo.fr/serveur-messagerie-dovecot/
# sur kazkouil.fr, j'ai modifié /etc/dovecot/conf.d/20-lmtp.conf
#mail_plugins = $mail_plugins sieve quota
@jwt_required()
def get(self, email):
"""
Récupérer la place prise par une BAL (EN COURS)
---
tags:
- Quota
security:
- Bearer: []
parameters:
- in: path
name: email
type: string
required: true
responses:
200:
description: Succès, taille d'une BAL'
400:
description: Oops, échec dans l'affichage de la taille d'une BAL
"""
global serveur_imap, mot_de_passe_mail
try:
if validate_email(email):
# Connexion au serveur IMAP
mail = imaplib.IMAP4_SSL(serveur_imap)
mail.login(email, mot_de_passe_mail)
#res, data = mail.select("INBOX")
#return data[0].decode("utf-8"), 200
# Requête pour obtenir le quota de la boîte aux lettres
# res, data = mail.getquota("INBOX")
# return str(data[0]).split()
res, data = mail.getquotaroot("INBOX")
return str(data[1]).split()[3]+" KB"
# Fermeture de la connexion
mail.close()
mail.logout()
else:
return "Email non valide", 400
except imaplib.IMAP4.error as e:
return str(e), 400 # Retourne le message d'erreur et un code d'erreur 400
except EmailNotValidError as e:
return str(e), 400 # Retourne le message d'erreur et un code d'erreur 400