aide fonction mail()

Petit nouveau ! | 8 Messages

10 juin 2022, 16:24

Bonjour à tous,

Je récupère les données d'un formulaire avec un fichier PHP, celui-ci envoi un mail et génère un fichier csv
du moins jusqu'à hier

tout cela fonctionnait parfaitement mais depuis hier je ne reçois plus les mails par contre le fichier csv lui se remplit bien
le site est hébergé chez ovh et je me demande si ce n'est pas ça le pb :oops:

voici mon code :

<?php

session_start();


/* Simple order form script
Uses $_POST variables: numero
**/


$numero = htmlspecialchars($_POST['numero']);


/* You can edit the templates below to customize reservation emails. Remember to change $mail_address to your email address. */
$mail_subject = "Rappel Clients (".$_SESSION['utm_source'].")";
$mail_content = "Rappel automatique \r\n \r\n

Numéro a rappeler : ".$numero."\r\n";



$mail_address = "monEmail"; /* Your email **/

$mail_content = wordwrap($mail_content, 70, "\r\n");
$headers = 'X-Mailer: PHP/'.phpversion();
mail($mail_address, $mail_subject, $mail_content, $headers);


$dt = date("ym");
$dt2 = date("d/m/y H:i");

if (!file_exists("Files/Rappel-Clients-".$dt.".csv" )) {
// le fichier n'existe pas
$fd = fopen("Files/Rappel-Clients-".$dt.".csv","x+");
fwrite($fd,'Date');
fwrite($fd,";");
fwrite($fd,'Source');
fwrite($fd,";");
fwrite($fd,'Telephone');
fwrite($fd,";");
fwrite($fd,"\n"); //A LA FIN ON BOUGE PAS

} else {
// le fichier existe
$fd = fopen("Files/Rappel-Clients-".$dt.".csv","a+");
}

fwrite($fd,$dt2);
fwrite($fd,";");
fwrite($fd,$_SESSION['utm_source']);
fwrite($fd,";");
fwrite($fd,$numero);
fwrite($fd,";");
fwrite($fd,"\n"); //A LA FIN ON BOUGE PAS
fclose($fd);


header('Location:/index.php');
?>

Petit nouveau ! | 7 Messages

10 juin 2022, 18:23

Je n'ai pas compris si le mail était envoyé par OVH.
Chez Nuxit il faut maintenant que l'expéditeur soit dans le domaine ou est hébergé le script Php
Par exemple si le site web toto.com envoie un mail l'expéditeur doit être [email protected]

Petit nouveau ! | 8 Messages

10 juin 2022, 20:12

les mails sont envoyés directement du serveur OVH et je ne sais pas pourquoi cela ne fonctionne plus

Avatar du membre
Eléphanteau du PHP | 41 Messages

10 juin 2022, 20:54

un bug coté serveur SMTP de OVH; fait juste une fonction mail simple donné dans l'exemple du manuel php.
normalement tu as rien à faire de ton coté. tu rempli les donnés de la fonction mail() php et ça marche. que si le SMTP est fonctionnel.

et dans le php.ini normalement il est possible de configurer le serveur d’accès
SMTP = 127.0.0.1
smtp_port = 25

si tu n'as pas accès que php.ini
il est possible d'activé ces informations en début de script
ini_set("SMTP","smtp.example.com" );
ini_set('sendmail_from', '[email protected]');
ini_set('smtp_port', '25');
tu peux aussi savoir comment est configurer le SMTP dans php avec phpinfo();
comme tu peux le voir mon copier coller de mon serveur local
SMTP	localhost	localhost
smtp_port	25	25

Petit nouveau ! | 8 Messages

11 juin 2022, 00:20

Bonjour Dsynx,

je pense que tu as la solution à mon pb

voici les infos que je retrouve avec php info
sendmail_from [email protected] [email protected]
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
serialize_precision -1 -1
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25

ini_set("SMTP","ssl0.ovh.net" );
ini_set('sendmail_from', '[email protected]');
ini_set('25', '25');

est ce que je dois intégrer ça a mon fichier php?
Merci pour ton aide
Michael

Avatar du membre
Eléphanteau du PHP | 41 Messages

11 juin 2022, 14:48

oui et non; en général le ini_set c'est pour contourné quand tu n'as pas accès au fichier de configuration le "php.ini"
tu as une petit erreur dans le dernier ini_set je te rectifier cela :
<?php 
/* 
! Attention :
- problématique d’accès au php.ini j'ai donc temporairement 
  reconfigurer les variable à l'utilisation du SMTP via la fonction
  ini_set pour les spécificités suivante : 
  SMTP
  sendmail_from
  smtp_port
- voir manuel : php . net/manual/fr/mail.configuration.php
*/
ini_set("SMTP","ssl0.ovh.net" );
ini_set('sendmail_from', '[email protected]'); // la boite mail de ton site OVH
ini_set('smtp_port', '25');

ici mon code php ...
le php.ini c'est le fichier de configuration de php . je ne sais pas trop comment accéder au php.ini dans OVH mais tu peux redéfinir certaine partie en début de script. il faudrait voir si tu peux accéder au php.ini dans le panel de contrôle de OVH ou carrément leur demander de l'aide et leur dire que la fonction Mail ne semble pas utilisé ton serveur SMTP.
si c'est un site sans accès au php.ini alors un technicien va peut être faire les modif de son coté ou te proposé une solution disponible dans le panel de contrôle et le temps que ça fonctionne.
toi dans ton script tu les forces ici avec ini_set.

Mammouth du PHP | 2703 Messages

11 juin 2022, 15:18

si les emails étaient reçus, je doute que ce soit un problème de configuration. je commencerais par regarder si les emails n'arrivent pas maintenant dans les spams.

Petit nouveau ! | 8 Messages

11 juin 2022, 18:33

non aucun mail en spam, en fait les messages semble partir du serveur mais n arrive jamais

Petit nouveau ! | 7 Messages

12 juin 2022, 08:32

Il me semble que pour OVH le port SMTP n'est pas 25 mais 587 et qu'il faut avoir souscrit au MXPlan

https://docs.ovh.com/fr/hosting/suivi-e ... tomatises/

https://docs.ovh.com/fr/emails/generali ... utualises/

Petit nouveau ! | 8 Messages

12 juin 2022, 10:40

Bonjour
le script ini_set ne fonctionne pas, je vais essayer avec le port 587 et oui j'ai bien un MxPlan
merci pour votre aide, j espere qu on va trouver la solution
Michael

Petit nouveau ! | 7 Messages

12 juin 2022, 11:26

Le port 587 est sans SSl, avec serait 465