Work on mail alias

This commit is contained in:
kitoy 2025-12-13 04:47:17 +01:00
parent a5ba0b90bb
commit 2f61155040
2 changed files with 68 additions and 91 deletions

View File

@ -5,22 +5,19 @@
{% block main %} {% block main %}
<div class="row">
{% if MAIL_SERVER %} {% if MAIL_SERVER %}
<div class="col-md-12"> <h3> Mes identités : A quoi ca sert les alias ? </h3>
<p> Les alias d'e-mail c'est utile quand vous ne voulez pas donner votre vrai addresse e-mail.
<h3> A quoi ca sert les alias ? </h3> Vous pouvez creer une adresse que vous pouvez supprimer rapidemment, cela permet de creer une adresse pour un destinataire particulier
<p> Les alias c'est utile quand vous ne voulez pas donner votre vrai adresse e-mail. si vous n'avez pas confiance en lui par exemple ou de trier plus facilement les e-mails venant de ce destinataire.
Vous pouvez creer une adresse que vous pouvez supprimer rapidemment, cela permet personnaliser une adresse pour un destinataire
si vous n'avez pas confiance en lui ou de trier plus facilement les e-mails venant de ce destinataire.
</p> </p>
<p> Vous n'avez pas besoin de configurer un autre compte mail sur vos applications, tous les e-mails <p> Vous n'avez pas besoin de configurer un autre compte mail sur vos applications mail, tous les e-mails
arriveront sur votre adresse e-mail principale déjà configuré arriveront sur votre adresse e-mail principale déjà configuré. Faîtes attention de bien répondre avec votre mail d'alias cependant !
</p> </p>
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
<th>Mes Alias <span class="badge">{{ i }}</span></th> <th>Mes identités <span class="badge">{{ i }}</span></th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
@ -36,54 +33,34 @@
</tbody> </tbody>
</table> </table>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"> Mes identités </h3> <h3 class="panel-title"> Mes identités </h3>
</div>
<div class="panel-body">
<form method="POST" action="" enctype="multipart/form-data"> <form method="POST" action="" enctype="multipart/form-data">
<p> Votre Adresse e-mail sur ce serveur : {{ email }} </p> <h4> Votre addresse e-mail sur ce serveur : {{ email }} </h4>
<label> Nouvelle identité </label> <label> Nouvelle identité </label>
<br/> <br/>
<div class="col-sm-7"> <fieldset role="group">
<input type="text" name="alias" id="alias" placeholder="Nouvel_identité" class="form-control"><br /> <input type="text" name="alias" id="alias" placeholder="Nouvel_identité">
</div> <button class="outline">
<h4>@{{ hostname }}</h4> @{{ hostname }}
</button>
</fieldset>
<br/> <br/>
<br/> <br/>
<button id="tada" class="btn btn-default btn-primary" type="submit">Ajouter</button> <button class="btn btn-default btn-primary" type="submit">Créer cette identité</button>
</form> </form>
</div>
</div>
{% else %} {% else %}
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"> Mes identitées </h3> <h3 class="panel-title"> Mes identitées </h3>
</div>
<h2> Le serveur de mail n'est pas activé cette fonctionnalitée est désactivé <h2>
<div class="panel-body">
<h2> Le serveur de mail n'est pas activé cette fonctionnalité est désactivé <h2>
</div>
</div>
{% endif %} {% endif %}
{# on affiche les messages d'erreur puis les messages de succes #}
{% for categorie in ['error', 'succes'] %}
{% with msgs = get_flashed_messages(category_filter=[categorie]) %}
{% if msgs %}
{% for m in msgs %}
<p>{{ m|safe }}</p>
{% endfor %}
{% endif %}
{% endwith %}
{% endfor %}
{% endblock %} {% endblock %}

View File

@ -28,7 +28,7 @@ MAIL_SERVER = app.config['MAIL_SERVER']
XMPP_SERVER = app.config['XMPP_SERVER'] XMPP_SERVER = app.config['XMPP_SERVER']
SETUID = app.config['SETUID'] SETUID = app.config['SETUID']
BASE_URL = app.config['BASE_URL'] BASE_URL = app.config['BASE_URL']
BACKUP_TIME = app.config['BACKUP_TIME'] MAIL_DOMAIN = app.config['HOST']
################################################################################################## ##################################################################################################
@ -37,7 +37,7 @@ BACKUP_TIME = app.config['BACKUP_TIME']
@mymailbox.route('/mymailbox/alias', methods=['GET', 'POST'] ) @mymailbox.route('/mymailbox/alias', methods=['GET', 'POST'] )
@login_required @login_required
def myalias(): def myalias():
hostname=gethostname() hostname=MAIL_DOMAIN
user='%s' % escape(session['username']) user='%s' % escape(session['username'])
conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
cursor = conn.cursor() # Création de l'objet "curseur" cursor = conn.cursor() # Création de l'objet "curseur"
@ -63,10 +63,10 @@ def myalias():
(aliases, user)) (aliases, user))
conn.commit() conn.commit()
time=time.strftime("%A %d %B %Y %H:%M:%S") time=time.strftime("%A %d %B %Y %H:%M:%S")
IP=request.environ['REMOTE_ADDR'] ip_address=request.environ['REMOTE_ADDR']
client_plateform=request.headers.get('User-Agent') client_plateform=request.headers.get('User-Agent')
log=time + ' - ' + IP + ' - ' + user + ' - ' + client_platerform + '\n' + '---> ' + "Ajout de l'alias "+ alias + '\n' log=time + ' - ' + ip_address + ' - ' + user + ' - ' + client_platerform + '\n' + '---> ' + "Ajout de l'alias "+ alias + '\n'
append_to_log(log, user) append_to_log(log, user)
flash(u'Votre alias a été ajouté', 'succes') flash(u'Votre alias a été ajouté', 'succes')
else: else:
@ -91,7 +91,7 @@ def myalias():
aliases=mailbox['alias'], aliases=mailbox['alias'],
hostname=hostname, hostname=hostname,
MAIL_SERVER=MAIL_SERVER, MAIL_SERVER=MAIL_SERVER,
username=UTILISATEUR ) username=user )
@mymailbox.route('/mymailbox/rmalias/<aliasrm>') @mymailbox.route('/mymailbox/rmalias/<aliasrm>')
@ -99,10 +99,10 @@ def myalias():
def remove_alias(aliasrm): def remove_alias(aliasrm):
aliasrm = escape(aliasrm) aliasrm = escape(aliasrm)
if MAIL_SERVER: if MAIL_SERVER:
UTILISATEUR='%s' % escape(session['username']) user='%s' % escape(session['username'])
conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
cursor = conn.cursor() # Création de l'objet "curseur" cursor = conn.cursor() # Création de l'objet "curseur"
cursor.execute("""SELECT Mail, alias FROM users WHERE name=?""", (UTILISATEUR,)) cursor.execute("""SELECT Mail, alias FROM users WHERE name=?""", (user,))
tmp = cursor.fetchone() tmp = cursor.fetchone()
mail = tmp[0] mail = tmp[0]
alias_list = tmp[1].split(',') alias_list = tmp[1].split(',')
@ -117,13 +117,13 @@ def remove_alias(aliasrm):
res = os.system(cmd) res = os.system(cmd)
if res == 0: if res == 0:
cursor.execute("UPDATE users SET alias=? WHERE name=?", cursor.execute("UPDATE users SET alias=? WHERE name=?",
(aliases, UTILISATEUR)) (aliases, user))
conn.commit() conn.commit()
TIME=time.strftime("%A %d %B %Y %H:%M:%S") time=time.strftime("%A %d %B %Y %H:%M:%S")
IP=request.environ['REMOTE_ADDR'] ip_address=request.environ['REMOTE_ADDR']
CLIENT_PLATFORM=request.headers.get('User-Agent') client_platform=request.headers.get('User-Agent')
log = TIME + ' - ' + IP + ' - ' + UTILISATEUR + ' - ' + CLIENT_PLATFORM + '\n' + '---> ' + "Suppression de l'alias "+ alias + '\n' log = time + ' - ' + ip_address + ' - ' + user + ' - ' + client_platform + '\n' + '---> ' + "Suppression de l'alias "+ alias + '\n'
append_to_log(log, UTILISATEUR) append_to_log(log, user)
flash(u'Votre alias a été supprimé', 'succes') flash(u'Votre alias a été supprimé', 'succes')
else: else:
flash(u'Il y a eu une erreur', 'error') flash(u'Il y a eu une erreur', 'error')