# Setup du service mail

## FQDN
**Pour cette étape vous devez posséder un nom de domaine qui pointe sur votre serveur (DNS) et connaître votre FQDN (Fully Qualified Domain Name**
<br/>*Pour connaître son FQDN:*

```sh
hostname -f
```

Pour éditer son `hostname` il suffit d'éditer:

```sh
nano /etc/hostname
```

Puis **remplacer le hostname actuel** par celui voulu par exemple: `server-ex52` deviendra `toto` puis on sauvegarde. Le changement sera pris en compte au prochain reboot sinon vous pouvez le réactualiser avec la commande `sudo hostname toto` puis vérifier si le changement a été pris en compte avec la commande `hostname`.

Ensuite mettons en place le FQDN pour cela faite:
```sh
nano /etc/hosts
```

Modifier votre fichier dans notre cas on veut rester en local *(pensez à changer domaine.tld par votre nom de domaine)*:
```sh
127.0.0.1 toto.domaine.tld toto
127.0.0.1 localhost
```
A la fin il devrait ressembler à cela:
```sh
127.0.0.1 toto.domaine.tld toto
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
```
Une fois vos changements sauvegardés vérifier votre FQDN: Il suffit de taper `hostname -f`

## SERVEUR MAIL POSTFIX

**Maintenons installons postfix, quelques questions nous serons posées:**
```sh
apt-get install -f postfix mailutils
```

On répond aux questions suivantes posées par l’installation :

**General type of mail configuration** ? Internet Site 
<br/>**System mail name** ? domaine.tld

Puis on relance la configuration complète du paquet :

```sh
dpkg-reconfigure postfix
```

**General type of mail configuration ?** Internet Site
<br/>**System mail name ?** domaine.tld
<br/>**Root and postmaster mail recipient ?** Laisser vide
<br/>**Other destinations to accept mail for  ?** domaine.tld, localhost.domaine.tld, localhost
<br/>**Force synchronous updates on mail queue ?** No
<br/>**Local networks ?** Laisser par défaut 127.0.0.0/8 [ ::ffff:127.0.0.0]/104 [ ::1]/128
<br/>**Mailbox size limit (bytes) ?** 0
<br/>**Local address extension character ?** Laisser par défaut (+)
<br/>**Internet protocols to use ?** ipv4 *all si vous avez ipv6 de config*

Pour tout problèmes vous pouvez voir votre configuration en allant voir le fichier de configuration: `/etc/postfix/main.cf` et les logs sont disponibles sous `/var/log/mail.log`

Testons notre configuration:

```sh
echo 'Hello World ! Je suis un email du serveur.' | mail -s 'Hello World' mon_adresse_email@mail.com
```
Le mail peut arriver dans les spams c'est tout à fait normal ne vous inquiétez pas. Nous allons maintenant rediriger les mails de root vers notre adresse mail. Pour cela:

```sh
nano /etc/aliases
```
Puis rajouter à la suite:
```sh 
root: mon_adresse_email@mail.com
```
Puis pour valider les changements: 
```sh
newaliases
```
Testons ensuite de nouveau:
```sh
echo 'Hello World ! Test root mail.' | mail -s 'Hello World' root
```
Afin de ne pas avoir Postfix qui écoute inutilement sur le port 25:
<br/>Allons éditer:
```sh
nano /etc/postfix/master.cf
```
et commenter la ligne suivante:

```sh
#smtp      inet  n       -       y       -       -       smtpd
```

On relance ensuite postfix:
```sh
service postfix restart
```

On va mettre ensuite en place un email lorsqu'un utilisateur accède au compte root pour cela:
```sh
nano /root/.bashrc
```
Puis rajouter à la fin du fichier:
```sh
echo 'Acces Shell Root le: ' `date` 'par' `who` | mail -s 'Connexion serveur via root' root
```
Il est également possible de faire pour tout les utilisateurs et donc pour chaque <br/>connexion ssh ! Pour cela il suffit de modifier le fichier `/etc/bash.bashrc`

On ajoute ensuite la ligne suivante à la fin du fichier:
```sh
echo 'Acces Shell le: ' `date` 'par' `who` | mail -s 'SSH: acces sur serveur: '`hostname` root
```

Voilà nous avons fini de configurer notre serveur mail en cas de problèmes.