Bonjour,
Nous utilisons un Virtual Private Server, configuré sous Ubuntu 16.04, administré à distance, en ssh.
Il contient un serveur LAMP, sur lequel est déployée une application PHP
La version de PHP est 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Nous souhaitons expédier des mails, à de très rares occasions, pour informer un client d'une sollicitation, d'un niveau de provision bas, etc ...
Dans le cadre de la relation commerciale.
Pour ce faire, nous utilisons la fonction mail() de PHP
Laquelle requiert un serveur SMTP, pour l'envoi du mail.
C'est ici que je manque d'expérience.
Que faut-il, en aval de la fonction mail() de PHP ?
J'ai installé mailutils
En suivant le tuto
https://www.digitalocean.com/communi...n-ubuntu-14-04
Remarquez qu'il ne correspond pas à ma version d'Ubuntu.
Il prétend installer implicitement postfix, mais je n'ai pas de répertoire /etc/postfix
Et encore moins de fichier /etc/postfix/main.cf
Ensuite, je me suis exercé à l'envoi de mail avec Telnet.
En voici la console
J'ai bien reçu l'email. Sans mention de l'expéditeur, ni sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 christian@jupiter:~$ telnet mail.xxx.be 587 Trying 64.34.67.250... Connected to mail.xxx.be. Escape character is '^]'. 220-r121.websiteservername.com ESMTP Exim 4.89 #1 Thu, 04 Jan 2018 17:29:49 +0100 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail. EHLO mail.xxx.be 250-r121.websiteservername.com Hello mail.xxx.be [XXX.XXX.XXX.XXX] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS 250 HELP AUTH PLAIN 334 AGNoc*********MmJpcw== 235 Authentication succeeded mail from: <xxx.xxx@xxx.be> 250 OK rcpt to: <a href="mailto:xxx.xxx@xxx.be">xxx.xxx@xxx.be</a> 250 Accepted rcpt to: msc****** 250 Accepted data 354 Enter message, ending with "." on a line by itself Bonjour ***, je compose ce mail en console telnet, connectée sur mon serveur smtp Le recois-tu. . 250 OK id=1eX8Qx-00027n-3c subject: Mail expedie depuis telnet, connecte au serveur smtp de xxx 500 unrecognized command Subject: Mail expedie depuis telnet, connecte au serveur smtp de xxx. 500 unrecognized command quit 221 r121.websiteservername.com closing connection Connection closed by foreign host.
Telnet m'a permis de comprendre les prérequis à l'envoi d'un mail.
Y compris l'authentification en base64
Maintenant, comment transposer tous ces paramètres dans les logiciels d'envoi de mail à installer sur le VPS ?
J'ai également conçu une petite application PHP d'envoi de mail.
Disponible sur http://gamma.communik.pro/communik/test/smtp/
Après l'envoi, je reçois un code True, matérialisé par une phrase verte, de la part de la fonction PHP mail()
Ce qui signifie que le mail a bien été délivré pour expédition.
Je voudrais l'envoyer à moi-même, mais ne le reçois jamais.
Pourtant, mon port 25 est bien ouvert.
Même en désactivant ufw, au cas où je tenterais d'expédier par un port fermé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 root@10-0-0-6:~# ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80 ALLOW Anywhere 1194 ALLOW Anywhere 81 ALLOW Anywhere 25 ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6) 80 (v6) ALLOW Anywhere (v6) 1194 (v6) ALLOW Anywhere (v6) 81 (v6) ALLOW Anywhere (v6) 25 (v6) ALLOW Anywhere (v6) root@10-0-0-6:~#
Ca ne change rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part ufw disable
Programmeur de formation, je n'ai jamais été confronté à la configuration d'un serveur SMTP.
Merci d'avance à celui qui m'éclairera sur la marche à suivre, pour que la fonction PHP mail() puisse effectivement fonctionner.
Christian.
Partager