Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/03/2017, à 12:15

jibantas

Configuration de linux pour l'envoi d'un mail php

Salutation, dans le cadre de mon projet de bts je doit envoyer un mail en php sous linux (je precise parce que sous windows ca marche (code et envoi)). Je viens vers vous car j'ai un probleme consequent, je n'arrive pas a envoyer de mail sous linux, j'ai installer et configurer exim4 avec l'aide de mon professeur. Je suis sous un smtp orange que j'ai definit dans mon PHP.ini, j'ai essayer de faire un envoi manuel via telnet mais aucun resultat je recois juste un mail sur l'adresse d'envoi qui me dit que le mail n'as pas été delivré.
Voici mon formulaire et mon envoie de mail:

echo'<form action="mdpoublie.php" method="post">
                    <p>'.$_SESSION['login'].'</p>
                    <input type="password" name="mdp" id="mdp1" autocomplete="off" placeholder="nouveau mot de passe"/>
                    <input type="text" name="mail" id="mail" placeholder="mail"/>
                    <button type="submit" value="reinit">Réinitialisation</button>';
                    $connect=mysqli_connect($mysql_server , $mysql_user , $mysql_password , $mysql_database) or die("Connexion impossible");
 
                    if (isset($_POST) && !empty($_POST['mdp']) && !empty($_POST['mail'])) {
                        $login=$_SESSION['login'];
                        $mdp=$_POST['mdp'];
                        $mail=$_POST['mail'];
                        $req=$connect->query("UPDATE eleves SET mdp=('$mdp') WHERE login=('$login')");      
     
                            // Le message
                            $message = "Bonjour.\r\nVotre nouveau mot de passe est: $mdp.\r\n";
 
                            // Dans le cas où nos lignes comportent plus de 70 caractères, nous les coupons en utilisant wordwrap()
                            $message = wordwrap($message, 70, "\r\n");
 
                            // Envoi du mail
                            ini_set("sendmail_from","jibantas55@gmail.com");
                            mail($mail, 'Mon Sujet', $message);
 
                    }
                    else {
                        echo "Veuillez remplir les champs.";
                    }

Voici mon php.ini:

; For Unix only. You may supply arguments as well
; http://php.net/sendmail-path
sendmail_path = /usr/sbin/sendmail -t -i
SMTP = smtp.orangefr
smtp_port = 25

Hors ligne

#2 Le 24/03/2017, à 12:26

jplemoine

Re : Configuration de linux pour l'envoi d'un mail php

- Si tu n'utilises pas "une ligne" orange, le port 25 est bloqué
- Dans le cas contraire, je ne sais plus main je crois que, dans tous les cas, le port 25 est bloqué
--> normalement, il y a des fichiers logs

Solution : passer par un smtp authentifié.

NB : tant que ça ne fonctionne pas via telnet, ça ne fonctionnera pas via php.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#3 Le 24/03/2017, à 12:35

jibantas

Re : Configuration de linux pour l'envoi d'un mail php

J'utilise bien une ligne orange et mon prof a debloquer le port 25 pour que je puisse faire l'envoi
le probleme c'est qu'avant le telnet fonctionnais et du jour au lendemain il ne marchait plus
qu'est ce que tu entend pas un smtp authentifié.

Hors ligne

#4 Le 24/03/2017, à 12:46

jibantas

Re : Configuration de linux pour l'envoi d'un mail php

ok je viens de mettre ma box orange en dns du coup le telnet refonctionne mais je ne recoit pas la mail envoyer

Hors ligne

#5 Le 30/03/2017, à 12:30

ikoula

Re : Configuration de linux pour l'envoi d'un mail php

Je confirme tu ne peux pas utiliser le smtp d'orange sans t'authentifier.
Tu dois donc avoir les identifiants d'une boite orange + ajouter le code nécessaire.


Thomas | Community manager | ikoula Serveurs dédiés, VPS et Cloud Public
Contactez-nous | Suivez-nous sur Twitter | Likez nous sur Facebook

Hors ligne

#6 Le 30/03/2017, à 12:45

jplemoine

Re : Configuration de linux pour l'envoi d'un mail php

jibantas a écrit :

mon prof a debloquer le port 25

Je parlais du blocage coté Orange...

jibantas a écrit :

qu'est ce que tu entend pas un smtp authentifié.

C'est à dire un smtp où tu précises un nom d'utilisateur et un mot de passe comme quand tu veux lire tes courriels.

Le smtp classique, c'est ouvert à tout le monde (et donc utilisé pour le spam). Il y a donc plusieurs manières de protéger le serveur.
- pop before smtp : tu dois d'abord lire le courrier avant de pouvoir envoyer (je ne sais pas si c'est encore utilisé)
- le smtp autentifié : tu fournis un couple utilisateur / Mot de passe.
- ... ?


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#7 Le 30/03/2017, à 16:13

HPIR40

Re : Configuration de linux pour l'envoi d'un mail php

Pour que ton mail en php passe il faut que tu configure exim4 ou bien postfix en relay smtp

a ce moment la tu pourra taper directement le port 25 vers ton relay smtp, et c'est ce relais qui ferra la connexion TLS port 587 vers le smtp orange avec les bons logins et mdp

le port 25 tu le libere eventuellement dans ta lan (pour que tes serveurs discutent librement avec le relay smtp), mais tu ne le met pas en accés libre sur le net c'est super dangereux.

Hors ligne

#8 Le 30/03/2017, à 17:00

bobe

Re : Configuration de linux pour l'envoi d'un mail php

Précision : les options SMTP, smtp_port et sendmail_from ne sont utiles que sur un serveur windows. C'est d'ailleurs indiqué dans les commentaires du php.ini.

Sur Linux, php passe par un programme MTA local (MTA = Mail Transfer Agent) ciblé avec l'option sendmail_path, dont la valeur par défaut convient généralement.

Comme dit au-dessus, il faut donc installer exim4 ou postfix et le configurer pour relayer les mails sortants vers le smtp d'orange.

Pour définir l'adresse de retour, et vu que sendmail_from n'est pas utilisé sur linux, utilise le 5e argument de la fonction mail().

Hors ligne