Composents d'un serveur email
Mail Transfer Agents
Gère les connexions SMTP entrantes pour la réception des emails et les connexions SMTP sortantes pour l'envoie des emails.
Mail Delivery Agents
Déplace les emails de la file MTA vers les boites email.
IMAP et POP3 Serveurs
Gère les connexions IMAP et POP3 entrantes des clients email pour qu'ils accèdent aux boites email.
Ports
25 SMTP
- Utilisé pour envoyer et recevoir les mails, doit être ouvert en entrée et en sortie sur le serveur
- Utilisé pour la connexion et pour la transmission d'emails entre serveurs (relay)
- Doit accepter les connexions anonymes mais ne doit pas les relayer
587 SMTP
- Port de sortie utilisé par les clients mail qui se connecte au serveur pour envoyer des mails
- non-chiffré, mais utilise STARTTLS
- Doit rejeter les connexions anonymes et relayer les autres
465 Secure SMTP (SSMTP)
- utilisé par les clients mail qui se connecte au serveur pour envoyer des mails
- chiffré
- Doit rejeter les connexions anonymes et relayer les autres
Autres ports d'entrée
- 110 POP3
- 995 SSL-POP (encrypted)
- 143 IMAP
- 585 Secure IMAP (IMAP4-SSL)
- 993 IMAP4 over SSL (IMAPS, encrypted)
Historiquement les ports 993, 995 et 465 sont utilisés comme connexions chiffrées pour les protocoles IMAP (143), POP (110) et SMTP (25).
Mais il a été décidé qu'avoir 2 ports pour un protocole était du gaspillage.
C'est pourquoi STARTTLS a été créé, il permet d'initier une connexion en clair, puis de basculer sur une connexion chiffrée avec TLS.
PostFix
Liens
Configuration
Outils
|
# affiche les paramètres actuels de Postfix
postconf -pf
# affiche les paramètres du fichier /etc/postfix/main.cf
postconf -nf
# affiche les paramètres par défaut
postconf -df
|
Bases
/etc/postfix/main.cf
|
# Postfix ne servira pas de relais SMTP (default: subnet)
mynetworks_style = host
# les domaines de destination autorisés vers lesquelles Postix relais les emails, ici aucun (default: $mydestination)
relay_domains =
# spécifier si le hostname est différent de celui du serveur (commande hostname)
myhostname = nom.mon-domaine.fr
mydomain = mon-domaine.fr
# le nom de domaine des emails sortant: user@mon-domain.fr (default: $myhostname)
myorigin = $mydomain
# configure un relais SMTP
relayhost = smtp.free.fr:25
# Réglages par défaut:
# Après 10 erreurs, le serveur retarde toutes les réponses d'1 seconde
# Après 20 erreurs, le client est déconnecté
smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
|
/etc/postfix/main.cf
|
transport_maps = hash:/etc/postfix/transport
|
/etc/postfix/transport
|
# envoie directement les email pour mon-domaine.fr (user@mon-domaine.fr) et .mon-domaine.fr (user@host.mon-domaine.fr)
mon-domaine.fr :
.mon-domaine.fr :
# envoie tous les autres email via le smtp de free
* smtp:smtp.free.fr:25
# [] désactive le MX lookups
* smtp:[smtp.free.fr]:25
|
|
# hash the « /etc/postfix/transport » file et créé la base de données « /etc/postfix/transport.db »
postmap /etc/postfix/transport
|
/etc/postfix/master.cf
|
# décommenter les lignes suivantes
smtp inet n - n - - smtpd
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
|
/etc/postfix/main.cf
|
smtpd_sasl_auth_enable = yes
# choix de l'implémemtation SASL → Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/run/dovecot/auth-client
# domaine d'authentification par défaut, permet de se loguer juste avec le « username » sans le « @mon-domaine.fr »
smtpd_sasl_local_domain = $mydomain
# (défaut noanonymous)
smtpd_sasl_security_options = noanonymous, nodictionary, noplaintext
# (défaut $smtpd_sasl_security_options)
smtpd_sasl_tls_security_options = noanonymous, nodictionary
# noanonymous, noplaintext, nodictionary, forward_secrecy, mutual_auth
# établie une session TLS-encryptée avant l'authentification SASL
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/private/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key
# pour les emails entrants, contrôle du domaine de destination (mon-domaine.fr)
# (default: permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination)
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
# (default: )
smtpd_recipient_restrictions = $smtpd_relay_restrictions
# niveau de log (défaut 0)
smtpd_tls_loglevel = 1
# 0 → pas de log
# 1 → Log on TLS handshake completion
# 2 → Also log levels during TLS negotiation
# 3 et 4. Use log level 3 only in case of problems. Use of log level 4 is strongly discouraged.
|
Création des certificats
/etc/postfix/main.cf
|
# (défaut: $virtual_mailbox_maps)
virtual_mailbox_domains = $mydomain
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
# ne délivre les emails qu'aux adresses listées (défaut « proxy:unix:passwd.byname $alias_maps » comptes UNIX et alias)
local_recipient_maps = $virtual_mailbox_maps $virtual_alias_maps
local_transport = virtual
# préfix pour tous les chemins vers les dossiers de boites mail
virtual_mailbox_base = /home/vmail
# taille maximale en bytes d'une boite mail (defaut 51200000 = 48Mo)
virtual_mailbox_limit = 51200000
# spécifie le propriétaire des boites mail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_minimum_uid = 5000
|
Dossiers dans lesquels seront stockés les mails:
compte1@mon-domaine.fr → /home/vmail/ + compte1/
/etc/postfix/virtual_mailbox_maps
|
compte1@mon-domaine.fr compte1
compte2@mon-domaine.fr compte2
|
Permet de rediriger une adresse vers une autre
/etc/postfix/virtual_alias_maps
|
compte3@mon-domaine.fr compte1@mon-domaine.fr
|
|
# après chaque modification des fichiers précédents, pensez à les hasher afin de mettre à jour les bases de données correspondantes
# /etc/postfix/virtual_mailbox_maps.db et /etc/postfix/virtual_alias_maps.db
postmap /etc/postfix/virtual_mailbox_maps
postmap /etc/postfix/virtual_alias_maps
|
Rediriger le compte mail root vers un autre compte
Dans cette configuration le fichier /etc/postfix/aliases ne fonctionne pas, il faut à la place utiliser le fichier /etc/postfix/virtual_alias_maps
/etc/postfix/aliases
|
root: compte@mon-domaine.fr
|
/etc/postfix/virtual_alias_maps
|
root@mon-domaine.fr compte@mon-domaine.fr
|
|
On peut mettre plus d'un compte dans la colonne de droite (séparés par des espaces) |
/etc/postfix/main.cf
|
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc_maps
|
/etc/postfix/recipient_bcc_maps
|
user@example.com recipient@example.net
|
|
postmap /etc/postfix/recipient_bcc_maps
systemctl reload postfix
|
/etc/postfix/sender_access
|
user@domain.com REJECT
|
|
cd /etc/postfix
# créer le fichier de bdd sender_access.db
postmap hash:sender_access
|
/etc/postfix/main.cf
|
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access
|
PostfixAdmin
|
sudo pacman -S postfixadmin
|
/etc/webapps/postfixadmin/config.inc.php
|
$CONF['configured'] = true;
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix_user';
$CONF['database_password'] = 'mot de passe';
$CONF['database_name'] = 'postfix_db';
// To create the hash, visit setup.php in a browser and type a password into the field
$CONF['setup_password'] = 'mon hash';
|
/etc/php/php.ini
|
extension=imap.so
|
Base de données
|
CREATE DATABASE `postfix_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'postfix_user'@'localhost' IDENTIFIED BY 'mot de passe';
GRANT ALL ON `postfix_db`.* TO `postfix_user`@`localhost`;
|
Nginx
/etc/nginx/nginx.conf
|
server {
listen 80;
server_name postfixadmin.domain.fr;
root /usr/share/webapps/postfixAdmin;
index index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi.conf;
}
}
|
Aller à l'url suivante: http://postfixadmin.domain.fr/setup.php
- Vérifier que tout est bien installé
- Créer un mot de passe pour le setup, puis entrer le hash dans le fichier de configuration ($CONF['setup_password'])
- Créer un compte administrateur
Comptes virtuels configurés dans mysql
/etc/postfix/main.cf
|
virtual_alias_maps = proxy:mysql:/etc/postfix/virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf
# ne délivre les emails qu'aux adresses listée (défaut « proxy:unix:passwd.byname $alias_maps » comptes UNIX et alias)
local_recipient_maps = $virtual_mailbox_maps
local_transport = virtual
virtual_mailbox_base = /home/vmail
virtual_mailbox_limit = 512000000
virtual_minimum_uid = 5000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
|
/etc/postfix/virtual_alias_maps.cf
|
user = postfix_user
password = mot de passe
hosts = localhost
dbname = postfix_db
query = SELECT goto FROM alias WHERE address='%s' AND active = true
|
/etc/postfix/virtual_domains_maps.cf
|
user = postfix_user
password = mot de passe
hosts = localhost
dbname = postfix_db
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = false AND active = true
|
/etc/postfix/virtual_mailbox_limits.cf
|
user = postfix_user
password = mot de passe
hosts = localhost
dbname = postfix_db
query = SELECT quota FROM mailbox WHERE username='%s'
|
/etc/postfix/virtual_mailbox_maps.cf
|
user = postfix_user
password = mot de passe
hosts = localhost
dbname = postfix_db
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = true
|
Test
Se connecter sur PostfixAdmin → Send Email
|
Le port 25 doit être ouvert en sortie.
Erreur: Connection timed out
Freebox |
|
telnet localhost 25
ehlo localhost
mail from: root@localhost
rcpt to: test@gmail.com
data
Subject: Test
Test
.
quit
|
Log
/var/log/mail.log
|
« syslog-ng » doit être installé et activé au démarrage pour que Postfix écrive dans le fichier de log, sinon l'écriture du log se fera dans le journal. |
/etc/logrotate.d/syslog-ng
|
/var/log/mail.log {
monthly
rotate 1
missingok
sharedscripts
postrotate
/bin/kill -HUP $(cat /run/syslog-ng.pid 2>/dev/null) 2>/dev/null || true
endscript
}
|
Installation
|
sudo pacman postfix
# créer un nouveau groupe
groupadd -g 5000 vmail
# et un nouvel utilisateur
useradd -u 5000 -g vmail -d /home/vmail -s /bin/false vmail
mkdir /home/vmail
chown vmail:vmail /home/vmail
chmod -R 750 /home/vmail
passwd vmail
|
|
Dovecot n’autorise que les connexions d'utilisateurs ayant un ID > 500 (ici on force l'ID de vmail à 5000)
Ce réglage peut être modifié dans /etc/dovecot/conf.d/10-mail.conf → first_valid_uid |
Dovecot
Permet de se connecter à son compte email et de récupérer ses emails.
|
sudo pacman -S dovecot
# copie des fichiers de configuration
cp /etc/dovecot/dovecot.conf.sample /etc/dovecot/dovecot.conf
cp -r /usr/share/doc/dovecot/example-config/conf.d /etc/dovecot
|
/etc/dovecot/dovecot.conf
|
protocols = imap
|
Authentification
/etc/dovecot/conf.d/10-master.conf
|
service auth {
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
|
Stockage des emails
/etc/dovecot/conf.d/10-mail.conf
|
mail_location = maildir:/home/vmail/%u
|
SSL / TLS
/etc/dovecot/conf.d/10-ssl.conf
|
# requires SSL/TLS also for non-plaintext authentication
ssl = required
ssl_cert = </etc/ssl/private/server.crt
ssl_key = </etc/ssl/private/server.key
|
/etc/dovecot/conf.d/10-auth.conf
|
# allows plaintext authentication only when SSL/TLS is used first
disable_plaintext_auth = yes
# plain: envoie du mot de passe non-encrypté. Dans le cadre d'une connexion SSL/TLS ce n'est pas un problème.
auth_mechanisms = plain
|
Stockage des mots de passes dans un fichier
|
Utiliser une userdb static ne permet pas de lister les utilisateurs.
Error: User listing returned failure
Error: Failed to iterate through some users |
/etc/dovecot/conf.d/10-auth.conf
|
# commenter l'authentification système pour interdire l'accès aux comptes réels
#!include auth-system.conf.ext
# décommenter les lignes suivantes pour configurer le stockage des mots de passe dans un fichier
!include auth-passwdfile.conf.ext
!include auth-static.conf.ext
|
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
|
passdb {
driver = passwd-file
args = /etc/dovecot/passwd
}
|
/etc/dovecot/conf.d/auth-static.conf.ext
|
# utilisation du user « vmail »
userdb {
driver = static
args = uid=vmail gid=vmail home=/home/vmail/%u
# gid=nogroup
}
|
/etc/dovecot/passwd
|
user1@mon-domaine.fr:{PLAIN}password
user2@mon-domaine.fr:{SSHA}vkIq9ZuTczNGgsinVJgLE/Urc5HNHCYq
|
|
« user3 » fait référence à « user3@localhost » |
|
# génération des hash des mots de passe
doveadm pw -p password # MD5
doveadm pw -s ssha -p password # sha
doveadm pw -s SHA512-CRYPT -p password # sha512
doveadm pw -s BLF-CRYPT -p password # blowfish, installer bcrypt
|
Stockage des mots de passes dans un mysql
|
cp /usr/share/doc/dovecot/example-config/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext
chmod 600 /etc/dovecot/dovecot-sql.conf.ext
|
/etc/dovecot/dovecot-sql.conf.ext
|
driver = mysql
connect = host=localhost dbname=postfix_db user=postfix_user password=motdepasse
default_pass_scheme = MD5
user_query = SELECT '/home/vmail/%u' as home, \
'maildir:/home/vmail/%u' as mail, \
5000 AS uid, \
5000 AS gid, \
concat('dirsize:storage=', quota) AS quota \
FROM mailbox \
WHERE username = '%u' AND active = '1'
password_query = SELECT username as user, \
password, \
'/home/vmail/%u' as userdb_home, \
'maildir:/home/vmail/%u' as userdb_mail, \
5000 as userdb_uid, \
5000 as userdb_gid \
FROM mailbox \
WHERE username = '%u' AND active = '1'
|
/etc/dovecot/conf.d/10-logging.conf
|
# par défaut « syslog » → log dans le journal
# warning et error + info si info_log_path n'est pas renseigné + debug si debug_log_path n'est pas renseigné
log_path = /var/log/dovecot.log
# info si info_log_path n'est pas renseigné + debug si debug_log_path n'est pas renseigné
info_log_path = /var/log/dovecot-info.log
# debug
debug_log_path = /var/log/dovecot-debug.log
# Log unsuccessful authentication attempts and the reasons why they failed.
auth_verbose = yes
|
/etc/logrotate.d/dovecot
|
/var/log/dovecot*.log {
monthly
rotate 1
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
doveadm log reopen
endscript
}
|
|
DOVEADM="/usr/bin/doveadm";
# supprime pour tous les utilisateurs (-A) les mails de plus de 15 jours des boîtes Trash et Junk
$DOVEADM expunge -A mailbox Trash savedbefore 15d
$DOVEADM expunge -A mailbox Junk savedbefore 15d
# dans le cas d'une userdb static (fichier), il n'est pas possible de lister les utilisateurs
# il faut donc lancer la commande pour chaque utilisateur
users="user1@domain.fr user2@domain.fr"
for user in $users
do
$DOVEADM expunge -u $user mailbox Trash savedbefore 15d
$DOVEADM expunge -u $user mailbox Junk savedbefore 15d
done
|
crontab
|
# tous les dimanche à 5h
0 5 * * 0 /path/to/my/script_dovecot_expunge.sh
|
Liens
Erreurs
|
# ignorer /path/folder
doveadm mount add /path/folder ignore
# ignorer tous les points de montage dans /path
doveadm mount add '/path/*' ignore
|
|
pacman -S roundcubemail php-intl
chown -R http:http /usr/share/webapps/roundcubemail/temp /usr/share/webapps/roundcubemail/logs
|
/etc/nginx/nginx.conf
|
server {
listen 80;
server_name roundcube.domain;
root /usr/share/webapps/roundcubemail;
index index.php;
# Restrictions d'accès
location ~ ^/config|temp|logs/ {
deny all;
}
location ~ \.php$ {
try_files $uri =404;
# php-fpm
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi.conf;
# uwsgi
include uwsgi_params;
uwsgi_modifier1 14;
uwsgi_pass unix:/run/uwsgi/roundcubemail.sock;
}
}
|
/etc/php/php.ini
|
open_basedir = /tmp/:/usr/share/webapps/roundcubemail/:/etc/webapps/roundcubemail/:/var/log/roundcubemail/:/var/cache/roundcubemail/
extension=exif.so
extension=iconv.so
extension=intl.so
extension=pdo_mysql.so
|
Aller à l'url http://roundcube.domain/installer pour générer le fichier /etc/webapps/roundcubemail/config/config.inc.php
Base de données Roundcube
|
CREATE DATABASE `roundcube_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON roundcube_db.* TO 'roundcube_user'@'localhost' IDENTIFIED BY 'password';
|
|
# remplir la base de données
mysql -u root -p roundcubemail < /usr/share/webapps/roundcubemail/SQL/mysql.initial.sql
|
Fin de l'installation
Supprimer le dossier /usr/share/webapps/roundcubemail/installer
Ou modifier la configuration pour interdire l'utilisation de l'installeur.
/etc/webapps/roundcubemail/config/config.inc.php
|
$config['enable_installer'] = false;
|
Logs
- /var/log/roundcubemail/errors
- /var/log/roundcubemail/sendmail
- /var/log/roundcubemail/smtp
/etc/logrotate.d/roundcube
|
/var/log/roundcubemail/errors /var/log/roundcubemail/sendmail {
monthly
rotate 1
missingok
notifempty
compress
delaycompress
create 640 http http
}
|
/etc/webapps/roundcubemail/config/config.inc.php
|
// Log SMTP conversation to <log_dir>/smtp or to syslog
$config['smtp_debug'] = true;
|
/etc/webapps/roundcubemail/config/config.inc.php
|
// Ajouter le nom du plugin dans la liste
$config['plugins'] = array('custom_from');
|
|
Copier les plugins dans /usr/share/webapps/roundcubemail/plugins |
Après l'installation, une page demandant la mise à jour de la base de données s'affiche.
Ensuite se connecter avec le compte qui deviendra l'administrateur des plugins → Settings:
une page demandant la création d'un fichier *.myrc s'affiche. La création de se fichier autorise le compte connecté à devenir l'administrateur des plugins.
|
Les plugins ajoutés avec le plugin manager ne doivent pas être ajoutés dans le fichier « config.inc.php » |
- Supprimer le fichier « /usr/share/webapps/roundcubemail/*.myrc »
- DROP table ‘plugin_manager’
- Remove entry ‘myrc_plugin_manager’ from ‘system’ table
Nécessite l'installation des plugins
- jscolor
- http_auth
- timepicker
Désinstaller calendar (myrc)
- Supprimer la table « events », « events_cache », « events_caldav » et « reminders »
- Supprimer l'entrée « myrc_calendar » de la table « system »
tasklist (kolab)
|
# mise à jour de la base de données: /usr/share/webapps/roundcubemail/plugins/tasklist/UPGRADING
cd /usr/share/webapps/roundcubemail/bin
./updatedb.sh --package=tasklist-database --version=x.x.x --dir=../plugins/tasklist/drivers/database/SQL
|
|
Impossible de réordonner les taches. |
|
# mise à jour de la base de données: /usr/share/webapps/roundcubemail/plugins/calendar/UPGRADING
cd /usr/share/webapps/roundcubemail/bin
./updatedb.sh --package=calendar-database --version=x.x.x --dir=../plugins/calendar/drivers/database/SQL
|
Permet de répondre avec le bon expéditeur (From) lorsque l'email à été redirigé depuis un alias.
Permet aussi de modifier l'expéditeur.
DomainKeys Identified Mail permet de certifier qu'un email a bien été envoyer depuis son domaine.
Les emails sont signés avec une clé privée. Le serveur destinataire récupère la clé public via le DNS et vérifie la correspondance.
Tests
- Créer un domaine et un compte email dans PostfixAdmin.
- Se loguer avec ce compte dans Roundcube puis essayer de s'envoyer un email.
|
Consulter le journal système pour savoir ce qu'il se passe: journalctl -f |
Erreurs
maildir access problem for UID/GID=5000/5000
maildir access problem for UID/GID=5000/5000:
create maildir file /xxx/vmail/xxx@xxx.xx/tmp/xxx.xxx.xxx:
Permission denied
L'utilisateur technique (vmail) ne correspond pas aux id (5000) définis dans le fichier de configuration de postfix /etc/postfix/main.cf
pam_unix(dovecot:auth): check pass; user unknown
/etc/dovecot/conf.d/10-auth.conf
|
# désactiver l'authentification système pour mysql
#!include auth-system.conf.ext
!include auth-sql.conf.ext
|
Roundcube se déconnecte après chaque action et se reconnecte à chaque nouvelle action.
Pour éviter se comportement et garder la connexion ouverte il faut utiliser imap proxy
Roundcube: Erreur SMTP (250) : échec lors de l'authentification
/var/log/roundcubemail/errors
|
ERROR: SMTP server does not support authentication ()
SMTP Error: Authentication failure: SMTP server does not support authentication (Code: ) in /usr/share/webapps/roundcubemail/program/lib/Roundcube/rcube.php on line 1648
|
/etc/webapps/roundcubemail/config/config.inc.php
|
// commenter $config['smtp_pass']
$config['smtp_pass'] = '%p';
|
Roudcube: 504 Gateway timeout
Augmenter le délai d'attente
/etc/nginx/nginx.conf
|
location ~ \.php$ {
try_files $uri =404;
include uwsgi_params;
uwsgi_modifier1 14;
uwsgi_pass unix:/run/uwsgi/roundcubemail.sock;
uwsgi_read_timeout 120s; # 60s par défaut
uwsgi_send_timeout 120s;
}
|
NOQUEUE: reject: RCPT from domain.fr: 554 5.7.1 <user@externalmail.fr>: Relay access denied
NOQUEUE: reject: RCPT from domain.fr: 554 5.7.1 <user@externalmail.fr>: Relay access denied;
from=<user@domain.fr> to=<user@externalmail.fr> proto=ESMTP helo=<nextcloud.domain.fr>
Problèmes avec Gmail
Our system has detected that this message likely unsolicited mail
Message d'erreur provenant de Gmail lors de l'envoie d'un email vers une adresse Gmail.
host gmail-smtp-in.l.google.com[173.194.67.26] said:
Our system has detected that this message is likely unsolicited mail.
To reduce the amount of spam sent to Gmail, this message has been blocked.
- Créer un champs SPF.
- Configurer le reverse DNS (sur la Freebox)
Message d'erreur provenant de Gmail lors de l'envoie d'un email vers une adresse Gmail.
The IP you're using to send mail is not authorized to send email directly to our servers.
Please use the SMTP relay at your service provider instead.
Faire passer les emails envoyés par le relais SMTP du FAI, qui lui est autoriser à envoyer des emails à Gmail.
/etc/postfix/main.cf
|
relayhost = smtp.free.fr:25
|
Message d'erreur provenant du header d'un email reçu par Gmail.
Received-SPF: softfail
(google.com: domain of transitioning compte@mon-domaine.fr does not designate x.x.x.x as permitted sender)
client-ip=x.x.x.x;
L'IP x.x.x.x ne correspond pas au champs SPF définit dans le DNS.
Ceci peut être causé par l'utilisation d'un relais SMTP alors que la configuration du champs SPF n'a pas été remise à jour.
« y.y.y.y » représente l'IP du serveur
« 212.27.42.0/24 » représente les IPs des serveurs SMTP de free
.mon-domaine.fr SPF v=spf1 a mx ip4:y.y.y.y ip4:212.27.42.0/24 ip6:2a01:e0c:1:1599::0/112 ~all
|
Configurer aussi les IPv6 au besoin |
Received-SPF: permerror
Message d'erreur provenant du header d'un email reçu par Gmail.
Received-SPF: permerror
(google.com: permanent error in processing during lookup of compte@mon-domaine.fr)
client-ip=x:x:x:x::x;
Le champs SPF contient une erreur, par exemple l'include n'est pas valide.