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 05/07/2017, à 13:47

grophies

[PHP]function mail xampp

Bonjour,

j'essaie d'envoyer un mail avec xampp depuis ubuntu (donc en localhost) et ça ne marche pas. Voici mon code :

// Envoi d'un mail d'acivation.
$to = $user_email;
$subject = WEBSITE_NAME . " - ACTIVATION DE COMPTE.";
 
ob_start();
require_once( dirname(__DIR__) . "/templates/emails/activation.tmpl.php" );
$content = ob_get_clean();
 
/*
 * Pour que l'envoi d'email fonctionne, il faut éviter de nommer son ordinateur avec des symboles spécifiques à une langue.
 * Par exemple, au lieu de maïs (i tréma) nommer son ordinateur mais (i).
 */
$faiMail = ini_set("SMTP", "smtp.orange.fr"); // fai = Fournisseur d'Accès Internet
$portMail = ini_set("smtp_port", "25");
$mailSender = ini_set("sendmail_from", "xxxxxxx@gmail.com");
 
$mailAddressee = $user_email; // Déclaration de l'adresse du destinataire (addressee en anglais)
                 
// On filtre les serveurs qui rencontrent des bogues.
if ( !preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mailAddressee) )
{
    $passageLigne = "\r\n";
}
else
{
    $passageLigne = "\n";
}
                 
$headers = "MIME-Version: 1.0" . $passageLigne;
$headers .= "Content-type: text/html; charset=iso-8859-1" . $passageLigne;
 
mail($to, $subject, $content, $headers);

J'ai cherché sur internet mais les solutions proposées ne fonctionnent pas. Est-ce que j'ai raté quelque chose.

Merci pour votre aide.

Hors ligne

#2 Le 05/07/2017, à 14:03

bruno

Re : [PHP]function mail xampp

Bonjour,

Est-ce que tu as le droit d'utiliser smtp.orange.fr sur l port 25 depuis ta machine ? (Est-ce que ton FAI est Orange, et autorise-t-il l'utilisation du SMTP non authentifié ?)

Quelle est la valeur de la variable $to ?

À quoi sert ce bout de code stupide :

// On filtre les serveurs qui rencontrent des bogues.
if ( !preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mailAddressee) )
{
    $passageLigne = "\r\n";
}
else
{
    $passageLigne = "\n";
}

Hors ligne

#3 Le 05/07/2017, à 14:25

grophies

Re : [PHP]function mail xampp

Est-ce que j'ai le droit d'utiliser le port 25, je ne sais pas, je suis nouveau sur ubuntu, avant j'utilisais windows (windows 7, mais je n'ai pas aimé windows 10), et mon code marchait bien. Oui, mon FAI est orange. "non authentifié", ça veut dire ?

La valeur de la variable $to est l'adresse email saisi par l'utilisateur lors de son inscription.

Pour le bout de code, je l'ai trouvé sur openclassrooms.

Hors ligne

#4 Le 05/07/2017, à 14:51

bruno

Re : [PHP]function mail xampp

Si tu copies/colles des bouts de code sans comprendre ce qu'ils font, tu auras toujours des problèmes…

De ce que je vois de ton code la valeur de la variable $to n'est pas définie (=$user_email qui elle même n'est pas définie).

Ceci ne fonctionne que sous Windows (cf. http://php.net/manual/fr/mail.configura … mail-from) :

$mailSender = ini_set("sendmail_from", "xxxxxxx@gmail.com");

Hors ligne

#5 Le 05/07/2017, à 15:01

grophies

Re : [PHP]function mail xampp

Je ne fais pas de copier/coller, je lu tout ce tutoriel et j'ai tapé le code en dur. Je suis intéressé à apprendre la programmation. J'ai pensé que c'était une bonne astuce. Cela dit, son tutoriel n'était pas d'une grande utilité, son code pour envoyer des pièces jointes ne fonctionnait pas du tout, je reconnais que ce tutoriel laisse à désirer.

Dans mon formulaire, la valeur de l'attribut name du champ email est email

<!-- Champ email -->
<div class="form-group">
<label class="control-label" for="email">Adresse E-mail :</label>
<input type="email" class="form-control" id="email" name="email" required="required" />
</div>

et dans mon code php, j'ai mis

extract($_POST, EXTR_PREFIX_ALL, "user");

donc, au lieu de "email", j'ai maintenant "user_email".

Si ça ne fonctionne que sous windows, par quoi il faut le remplacer sous linux ?

Dernière modification par grophies (Le 05/07/2017, à 15:02)

Hors ligne

#6 Le 05/07/2017, à 15:38

bruno

Re : [PHP]function mail xampp

Par rien.
Par contre tu as intérêt à rajouter un champ From: (avec une adresse mail valide qu tu peux consulter) dans les en-têtes du mail.

Hors ligne

#7 Le 05/07/2017, à 15:56

grophies

Re : [PHP]function mail xampp

Alors comment faire pour envoyer un e-mail avec la fonction mail() de php depuis Ubuntu ?

Hors ligne

#8 Le 05/07/2017, à 19:32

grophies

Re : [PHP]function mail xampp

J'ai essayé avec postfix, ssmtp et msmtp, en relançant à chaque fois xampp, quoi que je fasse, l'email n'est pas envoyé. Pourquoi ?

Hors ligne

#9 Le 05/07/2017, à 21:47

grophies

Re : [PHP]function mail xampp

Je viens de refaire un essai d'envoi de mail, le fichier mail.log a rajouté ces lignes

Jul 5 21:40:01 xxxxx-VG274AA-ABF-s5221fr sm-msp-queue[14861]: My unqualified host name (xxxxx-VG274AA-ABF-s5221fr) unknown; sleeping for retry

Jul 5 21:41:01 xxxxx-VG274AA-ABF-s5221fr sm-msp-queue[14861]: unable to qualify my own domain name (xxxxx-VG274AA-ABF-s5221fr) -- using short name

Hors ligne

#10 Le 06/07/2017, à 09:22

bruno

Re : [PHP]function mail xampp

Avant d'essayer avec postfix ou autres qui ont de fortes chances de ne pas fonctionner derrière un box Orange, il faudrait tenter de faire fonctionner un envoi de courriel avec smtp.orange.fr.

D'abord vérifie bien que tu peux envoyer des courriels avec smtp.orange.fr dans ton courrielleur habituel (Thunderbird ou autre) sur cette machine.

Si cela fonctionne tu crées un script plus simple pour tester :

<?php

ini_set("SMTP", "smtp.orange.fr");
ini_set("smtp_port", "25");

$to='adresse1@example.com';
$from=adresse2@exemple.com';

$headers = "From: ".$from."\r\n";
$headers.="MIME-Version: 1.0\r\n";
$headers.="Content-Type: text/plain; charset=UTF-8; format=flowed\r\n";
$headers.="Content-Transfer-Encoding: 8bit\r\n";

$subject="test email php";
$content="Ceci est un test d'envoi via PHP";

try {
	mail($to, $subject, $content, $headers);
} catch (Exception $e) {
	echo 'Erreur : ',  $e->getMessage(), "\n";

}
?>

Les variables $to et $from doivent contenir des adresses de courriel (ce peut être la même adresse) que tu peux consulter.

Dernière modification par bruno (Le 06/07/2017, à 10:01)

Hors ligne

#11 Le 06/07/2017, à 09:53

grophies

Re : [PHP]function mail xampp

Comment je fais pour envoyer des emails avec smtp.orange.fr ? C'est une adresse email ? Je demande parce qu'il n y a pas d'arobase. Qu'est-ce que je dois configurer dans Thunderbird ?

Hors ligne

#12 Le 06/07/2017, à 10:02

grophies

Re : [PHP]function mail xampp

J'ai configuré l'envoi de mails avec orange en écrivant soit "Orange Mail" soit "Orange" au cas où ça changerait quelque chose, même si je suppose que ça ne change rien. Et Pour chacun des deux, j'ai essayé smtp.orange.fr avec chacun des trois ports 25, 465 et 587. Rien ne marche. J'ai dû mal configurer quelque chose, mais je ne sais pas quoi.

J'ai juste une question. avec smtp.orange.fr, est-ce que l'adresse de l'expéditeur peut être une adresse autre que orange (ex: abc@gmail.com) ou non ?

Dernière modification par grophies (Le 06/07/2017, à 10:04)

Hors ligne

#13 Le 06/07/2017, à 10:52

grophies

Re : [PHP]function mail xampp

J'ai essayé d'envoyer un email depuis une page php en remplaçant

ini_set("SMTP", "smtp.orange.fr");
ini_set("smtp_port", "25");

par

ini_set("SMTP", "smtp.gmail.com");
ini_set("smtp_port", "465");

ça ne marche pas. Et même le message d'erreur du catch ne s'affiche pas.

Dernière modification par grophies (Le 06/07/2017, à 11:52)

Hors ligne

#14 Le 06/07/2017, à 11:59

grophies

Re : [PHP]function mail xampp

Est-ce qu'il y a une configuration à faire dans php.ini ? ou ailleurs ?

Hors ligne

#15 Le 06/07/2017, à 12:44

bruno

Re : [PHP]function mail xampp

J'ai configuré l'envoi de mails avec orange en écrivant soit "Orange Mail" soit "Orange" au cas où ça changerait quelque chose, même si je suppose que ça ne change rien. Et Pour chacun des deux, j'ai essayé smtp.orange.fr avec chacun des trois ports 25, 465 et 587. Rien ne marche. J'ai dû mal configurer quelque chose, mais je ne sais pas quoi.

Si ton FAI est Orange tu dois pouvoir utiliser leur serveur SMTP ( serveur sortant dans la configuration des comptes de Thunderbird -> smtp.orange.fr). Si cela ne marche pas c'est qu'il y a autre chose qui bloque… Un pare-feu ?


init_set permet de modifier une option de configuration (php.ini)

http://php.net/manual/fr/function.ini-set.php

Tu n'y arriveras pas avec gmail. Gmail exige une authentification (utilisateur, mot de passe) et suivant les réglages du compte gmail un mot de passe ou une procédure spécifique.

Dernière modification par bruno (Le 06/07/2017, à 12:44)

Hors ligne

#16 Le 06/07/2017, à 17:47

grophies

Re : [PHP]function mail xampp

J'ai essayé en installant sendmail. En faisant des tests avec la console, je vois que l'adresse mail d'envoi est "root@xxxxxxxx@gmail.com", au lieu de "xxxxxxxx@gmail.com". Comment faire pour enlever le "root@" au début ? Est-ce qu'il est possible d'envoyer un mail d'un compte google depuis ubuntu ? si ce n'est pas possible, au lieu d'enlever "root@", je veux remplacer l'adresse email "xxxxxxxx@gmail.com" par "root@ubuntu".

Hors ligne

#17 Le 12/07/2017, à 15:11

grophies

Re : [PHP]function mail xampp

J'ai finalement réussi à envoyer un email avec PHPMailer sans rien installer d'autre (pas de sendmail, postfix, etc...). Je peux envoyer des emails à n'importe quelle adresse et même à plusieurs adresses en même temps, y compris à l'adresse même depuis laquelle j'envoie l'email. Mais j'ai un souci, je ne peux envoyer de mails qu'à partir d'une adresse mail précise. Excepté cette adresse email, je ne peux pas envoyer d'emails à partir d'autres adresses emails... Est-ce que quelqu'un peut me dire quoi faire ?

Si j'essaie d'envoyer un email depuis une autre adresse, ça affiche ceci : Message could not be sent.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/ … leshooting

Est-ce qu'il est possible de configurer Ubuntu (quelque chose sur Ubuntu) pour avoir plusieurs adresses emails ?

Merci pour votre aide.

Dernière modification par grophies (Le 12/07/2017, à 15:39)

Hors ligne