Proxmox [Tuto] Configuration du serveur SMTP sous Proxmox VE 7 avec OVH

  • Vague de SPAM

    Suite à une vague de spam sur le forum, les inscriptions sont temporairement limitées.

    Après votre inscription, un membre de l'équipe devra valider votre compte avant qu'il ne soit activé. Nous sommes désolés pour la gêne occasionnée et vous remercions de votre patience.
  • Passkey + Bitwarden : KO

    Un bug affecte la dernière version de l’extension Bitwarden, empêchant son utilisation correcte sur tous les sites Web.

    Si vous n'arrivez pas à vous connecter sur le forum avec la Passkey, videz le cache de votre navigateur (ou nouvelle fenêtre privée) ou encore utilisez un autre navigateur... et tentez une connexion identifiant + mot de passe

    Plus d'info, cliquez ici

EVO

Administrateur
Membre du personnel
25 Novembre 2019
11 196
2 590
303
/var/run/docker.sock
[Tuto] Configuration du serveur SMTP sous Proxmox VE 7 avec OVH
Proxmox_logo_standard_hex_400px.png

Petit aide mémoire pour la configuration du serveur SMTP sous Proxmox VE 7 avec OVH

Sommaire :
1/ Installation de libsasl2-modules
2/ Création du fichier de mot de passe
3/ Création de la base de donnés depuis le fichier de mot de passe
4/ Édition du fichiers de configuration
5/ Vérification du fonctionnement de postfix


:whistle:

1/ Installation de libsasl2-modules
Code:
apt install libsasl2-modules

2/ Création du fichier de mot de passe
Code:
nano /etc/postfix/sasl_passwd

On renseigne la ligne suivante :
Code:
ssl0.ovh.net:465 youremail@mail.com:votremotdepasse
youremail@mail.com est a modifier par votre adresse mail
votremotdepasse est a modifier avec le mot de passe de votre boite mail OVH

Puis j'enregistre avec Ctrl+X et je confirme avec Y puis Enter

3/ Création de la base de donnés depuis le fichier de mot de passe
Code:
postmap hash:/etc/postfix/sasl_passwd

Puis on protège notre fichier avec des permissions plus restrictive :
Code:
chmod 600 /etc/postfix/sasl_passwd


4/ Édition du fichiers de configuration
Code:
nano /etc/postfix/main.cf

Puis on indique :
Code:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

myhostname=TracheServ.TracheNet

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination =
relayhost = ssl0.ovh.net:465
mynetworks = 127.0.0.0/8
inet_interfaces = all
recipient_delimiter = +

compatibility_level = 2

smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile=/etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_tls_session_cache_timeout = 3600s
smtp_tls_wrappermode = yes
smtp_tls_security_level = secure
mailbox_size_limit = 0
inet_protocols = ipv4

Puis on relance postfix :
Code:
postfix reload

5/ Vérification du fonctionnement de postfix
Il est possible de vérifier que postfix fonctionne correctement avec la commande suivante :
Code:
postfix status

Le retour devra être :
[...] the Postfix mail system is running [...]
CFm0vhe.png
 
Hello par ici,
Y-a-t-il une manière de tester l'envoi de mail via l'interface proxmox ?
J'aimerais être sûr que tout fonctionne...


Et aussi, comme j'aime les scripts, j'ai fait un petit script qui fait tout comme un grand, si jamais ça peut servir :
Bash:
#!/usr/bin/env bash

# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ Script pour configurer le SMTP dans Proxmox VE                           ║
# ╚══════════════════════════════════════════════════════════════════════════╝

# ! À lancer en root !
# chmod 764 *.sh

# ~~~~~~~~~~ Variables à modifier ~~~~~~~~~ #
email="monmaail@ndd.ovh"
smtp_host="ssl0.ovh.net"
smtp_port=465
smtp_password="ton_mot_de_Pass_DeOuf918837382882"
backup_folder=~/"config-proxmox/backup-$(date +%Y-%m-%d--%Hh%Mm%Ss)"
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #

# ~~~~~~~~~~~ Dossier de backup ~~~~~~~~~~~ #
mkdir -p "${backup_folder}"
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #

printf "\n-- Script pour configurer le SMTP OVH dans proxmox --"
printf "\n-- 1. Installation de libsasl2-modules"
apt install libsasl2-modules

printf "\n-- 2. Création du fichier de mot de passe"
sasl_passwd_path=/etc/postfix/sasl_passwd
if [ -f "${sasl_passwd_path}" ]; then
    printf "\n     !! Le fichier '%s' existe, il sera copié dans '%s'." "${sasl_passwd}" "${backup_folder}"
    mv "${sasl_passwd_path}" "${backup_folder}"
fi

cat >"${sasl_passwd_path}" <<EOL
# Pour OVH : ssl0.ovh.net:465 youremail@mail.com:votremotdepasse
${smtp_host}:${smtp_port} ${email}:${smtp_password}
EOL

printf "\n-- 3. Création de la base de donnés depuis le fichier de mot de passe"
postmap hash:"${sasl_passwd_path}"
chmod 600 "${sasl_passwd_path}"

printf "\n-- 4. Édition du fichiers de configuration"
postfix_main_file=/etc/postfix/main.cf
if [ -f "${postfix_main_file}" ]; then
    printf "\n     !! Le fichier '%s' existe, il sera copié dans '%s'." "${postfix_main_file}" "${backup_folder}"
    cp "${postfix_main_file}" "${backup_folder}"
fi

sed -i "s/mydestination = .*/mydestination =/" "${postfix_main_file}"
sed -i "s/relayhost.*/relayhost = ${smtp_host}:${smtp_port}/" "${postfix_main_file}"
sed -i "s/inet_interfaces = .*/inet_interfaces = all/" "${postfix_main_file}"

contents=$(<"${postfix_main_file}")
section='smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile=/etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_tls_session_cache_timeout = 3600s
smtp_tls_wrappermode = yes
smtp_tls_security_level = secure
mailbox_size_limit = 0
inet_protocols = ipv4'

if [[ $contents == *"$section"* ]]; then
    printf "\n     Le fichier %s contient déjà la section à ajouter à sa fin." "${postfix_main_file}"
else
    # append it to the file
    printf "\n     Le fichier %s ne contient la section à ajouter à sa fin." "${postfix_main_file}"
    echo "$section" >>"${postfix_main_file}"
fi

printf "\n--      Vérification du fichier de configuration...\n"
cat "${postfix_main_file}"

printf "\n"
while true; do

    read -p "\n     Le fichier est-il correctement modifié ? (y/n) " yn

    case $yn in
    [yY])
        printf "\n     On relance postfix"
        postfix reload
        break
        ;;
    [nN])
        printf "\n     Copie retour du backup de main.cf"
        cp "${backup_folder}"/main.cf "${postfix_main_file}"
        exit
        ;;
    *)
        printf "\ninvalid response"
        ;;
    esac

done

printf "\n-- 5. Vérification du fonctionnement de postfix"
postfix status
if (systemctl is-active -q postfix); then
    printf "\n     Success: postfix is running."
else
    printf "\n     Error: postfix is not running!"
fi
 
@EVO Les modifications ne semblent plus fonctionnelles avec PVE 8.1...
En tout cas, pas sur une fresh install...

Saurais-tu comment refaire fonctionner ?