Php fonction mail ne fonctionne pas

Bonjour,

Je viens de transférer une application php de lautre.net vers Ouvaton.
L’envoi de mail qui fonctionnait chez lautre ne fonctionne pas chez Ouvaton.

J’ai écrit un script de test de la fonction mail :

<?php // testMail.php ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); error_reporting(E_ALL); $message = "Bonjour\n"; // création du header du message $headers = "From: xxxxx@free.fr\n"; $headers.= "Reply-To: xxxxx@free.fr\n"; $headers.= "X-Mailer: PHP/".phpversion()."\n"; // On envoie le mail : if ( mail("yyyyy@free.fr","test",stripslashes($message),$headers) ){ // Si le mail a bien été envoyé, message de confirmation echo "Votre mail a bien été envoyé.
"; } else{ // sinon, message d'erreur. $errorMessage = error_get_last(); echo "Message d'erreur :
"; print_r($errorMessage); echo "Votre mail n'a pas pu être envoyé.
"; } ?>

La fonction mail renvoie FALSE et j’obtiens :
“Votre mail n’a pas pu être envoyé”
rien avec error_get_last()
rien dans le fichier error_log.txt, si ce n’est :
[Thu May 24 18:21:33.678068 2018] [ssl:warn] [pid 4862:tid 140454577600384] AH01909: istresrando.fr:443:0 server certificate does NOT include an ID which matches the server name
(mais ça ne semble pas spécifique de ce script ; il semble que ce soit un message récurent)

Je précise que je suis nouveau chez Ouvaton : j’ai réglé la part sociale mais pas encore la facture qui n’a pas encore été éditée. Se pourrait-il que la fonction mail soit inactivée tant que la facture n’a pas été payée ?

J’aimerais régler rapidement ce problème d’envoi de mail car l’application envoie des mails à des personnes en attente dès qu’une place se libère.

Merci d’avance de votre aide.

Cordialement

Michel Delord

Bonsoir,
à ma connaissance, seul le smtp est bloqué tant que la facture n’est pas réglée (c’est à dire pendant la période d’essai. (voir: https://ouvaton.coop/Offre )

la fonction php mail() est bien activée sur Ouvaton.
Par contre (c’est à confirmer), il est possible qu’il faille, pour des raison de sécurité, que l’adresse visible d’envoi soit une adresse “ouvaton” (ou d’un nom de domaine hébergé par Ouvaton). Donc le “from” avec une adresse free bloque peut-être… (?)
Essayer avec une redirection vers free d’une adresse ouvaton (?)

Ce n’est qu’une hypothèse. Je ne suis pas assez compétent pour dire si le script donné en exemple est valable.

Au plaisir de vous lire
Phil

Bonjour,
Je ne suis pas du tout spécialiste, mais essaye :

  • mail("yyyyy@free.fr",“test”,stripslashes($message),$headers, “-f $exped”)
  • mettre “\r\n” pour le passage de ligne dans les headers

Merci pour la réponse.
C’est ce que j’avais fait dans un premier temps (car c’est la norme officielle) mais ça me donnait la même erreur. J’ai essayé avec seulement \n car j’ai lu que certains serveurs sous Linux n’acceptaient que \n. Mais toujours la même erreur.
Cordialement
Michel Delord

Merci pour ces informations.
Je pense donc que le problème vient du blocage du SMTP. J’ai donc fait une demande d’assistance pour voir s’il possible que la facture soit éditée plus rapidement afin que je puisse la régler.
Cordialement
Michel Delord

Bonsoir Philippe,

Je viens de rencontrer un problème similaire, et après bien des recherches infructueuses (merci l’absence de message d’erreur de PHP), j’ai pu à nouveau utiliser la fonction mail() en donnant comme expéditeur une adresse mail dans un domaine géré par Ouvaton.

En code, ça donne donc ça :

$from = "joel@bourgault.fr";
 ...
$headers  = "From: ".$from."\r\n";

Pour aider les prochains, serait-il possible de mettre à jour la page de documentation idoine, qui me semble être celle-ci : https://ouvaton.coop/documentation/faq/ ? Merci d’avance

Cordialement,
Joël

1 « J'aime »

Bonjour,

Quelle était l’adresse utilisée comme $from avant ?

Bonjour,

L’adress en $from était la recopie de ce que la personne avait indiqué comme adresse mail, l’idée étant que je reçoive un mail qui semble provenir directement de cette personne. Donc en pratique, ça pouvait être n’importe quoi, du moment que ça ressemblait à une adresse valide.

Cordialement,
Joël