Jump to content
GRCS-Marseille

limiter la réception des emails en fonction d'une taille définie

Rate this topic

Recommended Posts

Bonjour, j'ai un serveur dédié sous directadmin.

J'aimerais trouver une solution pour bloquer les mails de plus de 12M.

j'ai bien trouvé une possibilité dans filtre Email: "Bloquer tous les mails qui pèsent plus de :"

Le seul problème c'est que j'aimerais que l'expéditeur reçoive une notification pour lui préciser que son email n'a pas été livré pour cause de trop grande taille.

je n'ais pas encore trouvé de solution à ce problème, si quelqu'un peut me renseigner ?

Merci

 

Share this post


Link to post
Share on other sites

Bonjour,

 

Le principal problème est que exim ne peut pas connaître la taille d'un email entrant tant qu'il ne l'a pas accepté.

Donc, cela ne change rien en matière de bande passante, vu que le mail sera de toute manière réceptionné.

Il faut absolument éviter le bounce de ces messages, car là tu doublerais la bande passante...

 

En éditant le fichier /etc/exim.variables.conf de ton serveur dédié et en changeant la ligne "message_size_limit=50M" par la valeur souhaitée,  l'émetteur devrait recevoir un message lui signalant que l'email n'a pas été distribué.

 

Je viens de tester cela sur un de mes serveurs, et l'émetteur a reçu un message dans ce genre :

 
This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  dan@****.fr
    host mail.****.net [**.**.**.**]
    SMTP error from remote mail server after pipelined MAIL FROM:<contact@d***s.com> SIZE=1922580:
    552 Message size exceeds maximum permitted
Reporting-MTA: dns; ns*****.ip-**-**-**.eu

Action: failed
Final-Recipient: rfc822;dan@****.net
Status: 5.0.0
Remote-MTA: dns; mail.****.net
Diagnostic-Code: smtp; 552 Message size exceeds maximum permitted
J'avais abaissé temporairement la limite d'email à 1MB ... pour ne pas avoir à attendre trop longtemps, j'ai un ADSL plutôt faiblard ! ;)
Et, bonne nouvelle, le contenu du mail n'a pas subi de bounce...
 

Share this post


Link to post
Share on other sites

En modifiant la valeur de message_size_limit , cela influe les emails sortants aussi bien que les emails entrants.

Limitation à garder à l'esprit.

 

 

Share this post


Link to post
Share on other sites

Une alternative élégante que j'ai testée sur mon serveur et qui fonctionne bien est d'installer Dovecot avec Pigeonhole et Sieve.

Cela permet d'écrire une règle Sieve telle que celle-ci qui rejette les mails entrants de plus de 10M
 

# Filtre pour Sieve

# Déclarer les extensions utilisées par le script.
#
require ["fileinto", "reject"];

# Les messages de plus de 10MB seront rejetés avec message d'erreur
#
if size :over 10M {
   reject "Désolé, nous n'acceptons pas les messages de taille supérieure à 10MB.
Veuillez télécharger ce contenu sur un serveur et faites nous parvenir un lien..
Merci.";
}

# Garde le reste.
# Pas nécessaire vu la règle implicite de "keep"
#
else {
     keep;
}

Les emails sortants ne sont pas impactés, sauf s'ils sont à destination d'un compte email local (sur le même serveur) !

Share this post


Link to post
Share on other sites

Pour regarder de plus près, il faut que dovecot/pigeonhole soit installé.

Donc je te l'installe ;)

 

Share this post


Link to post
Share on other sites

Bonjour, je me suis mis activement sur le sujet pour bloquer la taille des emails supérieur à 15M.

En fonction de ce que j'ai pu comprendre il y a deux méthodes.

j'ai souhaité commencer par tester la 1er méthode utilisant le fichier:

/etc/exim.variables.conf

j'ai commencé par en faire une copier de secours (cp) exim.variables.conf.old

et j'ai utilisé ce bon vieux VI pour modifier la ligne en question :

message_size_limit=15M

et j'ai sauvé le fichier 

 

j'ai ensuite tenté d'envoyer un email de 20M et c'est passé comme une lettre à la poste.

n'étant clairement pas un expert linux j'ai besoin d'un peu de conseil.

Est-ce paracerque le processus serveur de mails n'a pas été relancé ? et du coup il est toujours sur la limite de 50M ?

 

j'ai un peu cherché et j'ai compris que le serveur de mails était le programme exim, 

si je dois relancer le processus y a t'il une commande propre ?

 

Merci à vous

 

 

 

 

Share this post


Link to post
Share on other sites

Bonjour,

 

Exim se relance facilement avec "service exim restart" (en tant que root sous ssh) ou encore sous directadmin dans "Information des Services".

 

Cordialement,

 

Dan

 

Share this post


Link to post
Share on other sites

Je recompile dovecot avec pigeonhole/sieve .... il semble que la dernière mise à jour n'ait pas gardé ma configuration précédente.

Quelques minutes de patience et ce sera OK !

 

Cordialement,

 

Dan

 

Share this post


Link to post
Share on other sites

Bonjour, Dan j'ai testé sur le fichier exim.variables.conf. avec un redémarrage du service.

 

 j'ai lancé plusieurs emails avec des tailles différentes j'ai constaté une petite distorsion, entre la taille constaté des pièces jointes et la taille du mail lors de la réception sur serveur.

 j'ai fais une petite adaptation de la taille dans le fichier de conf et ca fonctionne parfaitement.

 

Cela m'a déjà permis de régler l'urgence.

Merci beaucoup Dan pour votre aide qui nous a été précieuse.

 

Share this post


Link to post
Share on other sites

Le mail reçu sur le serveur contient les entêtes complètes, donc il est en toute logique un peu plus volumineux !

 

Si cela vous a permis de régler l'urgence, tant mieux ! C'était le but ! ;)

 

Share this post


Link to post
Share on other sites

J'ai créé le fichier /var/lib/dovecot/sieve/default.sieve dans lequel une règle limite la taille des emails à la valeur que tu avais mise dans exim.variables.conf

J'ai édité exim.variables.conf et retiré cette ligne.

Pour info, elle aurait disparu à la première mise à jour. Il vaut mieux éditer exim.variables.conf.custom pour que les modifs restent. ;)

 

Et là l'émetteur du mail recevra la notification suivante si son mail dépasse la taille autorisée :

Citation

"Désolé, nous n'acceptons pas les messages de taille supérieure à 18MB.
Veuillez télécharger ce contenu sur un serveur et faites nous parvenir un lien..
Merci."

J'ai ensuite relancé dovecot (service dovecot restart) et exim (service exim restart)

 

Dan

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Jerome_CREA
      Bonjour,
       
      Je souhaite restreindre l'accès à un sous-domaine d'un site (et quelques adresses IP) depuis un autre site en https
      Pour les IP ça ne pose pas du tout de problème, par contre pour mon domaine référent j'étais parti sur un test en PHP avec la $_SERVER['HTTP_REFERRER']
      Le problème c'est que ma cible, je n'ai pas de certificat SSL en sous-domaine ... de ce fait je ne récupère rien en HTTP_REFERRER, que nenni, nada, que dale !
       
      Ma question est de savoir s'il est possible d'ajouter un certificat sur un sous-domaine particulier dans DirectAdmin (en plus du certificat habituel sur le domaine principal)
       
      Merci d'avance pour vos lumières éclairantes
       
      Jérôme
×
×
  • Create New...