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,85 +5,62 @@
{% 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 </p>
si vous n'avez pas confiance en lui ou de trier plus facilement les e-mails venant de ce destinataire. <p> Vous n'avez pas besoin de configurer un autre compte mail sur vos applications mail, tous les e-mails
</p> arriveront sur votre adresse e-mail principale déjà configuré. Faîtes attention de bien répondre avec votre mail d'alias cependant !
<p> Vous n'avez pas besoin de configurer un autre compte mail sur vos applications, tous les e-mails </p>
arriveront sur votre adresse e-mail principale déjà configuré <table class="table">
</p> <thead>
<table class="table"> <tr>
<thead> <th>Mes identités <span class="badge">{{ i }}</span></th>
<tr> <th></th>
<th>Mes Alias <span class="badge">{{ i }}</span></th> </tr>
<th></th> </thead>
</tr> <tbody>
</thead> {% if aliases %}
<tbody> {% for alias in aliases %}
{% if aliases %} <tr>
{% for alias in aliases %} <td>{{ alias }}</td>
<tr> <td><a href="{{ url_for('profil.remove_alias', aliasrm=alias) }}"><button type="button" class="btn btn-sm btn-danger">Supprimer</button></a></td>
<td>{{ alias }}</td> </tr>
<td><a href="{{ url_for('profil.remove_alias', aliasrm=alias) }}"><button type="button" class="btn btn-sm btn-danger">Supprimer</button></a></td>
</tr>
{% endfor %}
{% endif %}
</tbody>
</table>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"> Mes identités </h3>
</div>
<div class="panel-body">
<form method="POST" action="" enctype="multipart/form-data">
<p> Votre Adresse e-mail sur ce serveur : {{ email }} </p>
<label> Nouvelle identité </label>
<br/>
<div class="col-sm-7">
<input type="text" name="alias" id="alias" placeholder="Nouvel_identité" class="form-control"><br />
</div>
<h4>@{{ hostname }}</h4>
<br/>
<br/>
<button id="tada" class="btn btn-default btn-primary" type="submit">Ajouter</button>
</form>
</div>
</div>
{% else %}
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"> Mes identitées </h3>
</div>
<div class="panel-body">
<h2> Le serveur de mail n'est pas activé cette fonctionnalité est désactivé <h2>
</div>
</div>
{% 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 %} {% endfor %}
{% endif %}
</tbody>
</table>
<h3 class="panel-title"> Mes identités </h3>
<form method="POST" action="" enctype="multipart/form-data">
<h4> Votre addresse e-mail sur ce serveur : {{ email }} </h4>
<label> Nouvelle identité </label>
<br/>
<fieldset role="group">
<input type="text" name="alias" id="alias" placeholder="Nouvel_identité">
<button class="outline">
@{{ hostname }}
</button>
</fieldset>
<br/>
<br/>
<button class="btn btn-default btn-primary" type="submit">Créer cette identité</button>
</form>
{% else %}
<h3 class="panel-title"> Mes identitées </h3>
<h2> Le serveur de mail n'est pas activé cette fonctionnalitée est désactivé <h2>
{% endif %}
{% 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')