Script cron qui n'envoie pas d'email après migration

Bonjour,

Depuis trois ans, j'utilise un cron pour une mise à jour d'agenda 1x/jour avec un envoi de mail après que la requête de mise à jour soit correctement effectuée.

J'ai migré tout le site et les scripts sur un nouvel hébergement (même type d'hébergement, le Perso) et depuis, le script s'exécute toujours sans soucis mais le mail ne part plus (ou n'arrive plus), sauf si je l'appelle moi même soit via l'adresse du site soit via l'adresse "cluster".

J'aimerais comprendre pourquoi le script n'envoie pas le mail via le cron mais bien en l'appelant manuellement (ou via un cronjob sur un site extérieur).

Pour info, et j'avais créé un sujet là dessus, les mails ne sont pas chez OVH mais chez InfoManiak.
Le script utilise mon adresse perso (gmail) et envoie sur une adresse gmail.
Il est identique au script sur l'ancien hébergeur (que je conserve pour tests et il fonctionne bien sans soucis pour alimenter la BDD liée à l'autre hébergement chez OVH).
J'utilise la fonction PHP mail()
J'utilise la même version PHP (8.3) sur les deux hébergements.
J'ai des retours d'erreur de script email (cf capture jointe). Les deux adresses sont les miennes (une l'administration du site Wordpress, l'autre, l'email où est envoyé le rapport CRON).
Mais je n'ai PAS reçu d'erreurs le 8 et le 9 juillet, la capture montre les 2 derniers.
Le systeme Script mail de mon manager m'indique 1 seul mail envoyé aujourd'hui. C'est certainement le mail du script CRON envoyé lors de l'appel via un site de Cronjobs à 04h00. Le CRON OVH se fait à 01h. J'aurais vu 2 mails envoyés. J'ai bien reçu le mail du site à 04h01.
Les mails de mise à jour Wordpress et de ContactForm7 sont bien reçus.


Bonjour,

Votre code envoie le mail comment ?

Cordialement, janus57

Bonjour Janus57,
Je mettais justement mon texte à jour ave la fonction utilisée et les erreurs SCRIPT MAIL OVH Manager, j'utilise la fonction mail() de PHP.

Bonjour,

Il faudrait le bout le code car là le message d'erreur est que vous faites de l'usurpation d'adresse Gmail depuis des serveurs OVH.

Cordialement, janus57

// Message mail
$message = $ical->event_count . ' événements trouvés
______________________
';
// Les destinataires
$to = '**.****g@gmail.com';
// Sujet
$subject = 'Agenda MAJ TWZ';
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Envoi
mail($to, $subject, $message, $headers);

___________
Il y a juste une ligne dans la bouche foreach() qui les différents événements trouvés dans la variable $message mais le code est le même depuis 3 ans.
Et le script est dans un sous dossier du dossier racine (www/ics/icsscript/script_import.php) comme sur l'autre hébergement. J'ai du juste mettre le premier courrier reçu en "non spam" sur mes deux comptes GMail.

Bonjour,

Je dirais qu'il faut explicitement définir un from.

Cordialement, janus57

Donc, ajouter

$headers = "From: Website \r\nReply-To: SendingEmail@address.tld";
avec les infos du nouveau site ?


Je voyais un souci DMARC via les erreurs.
Sur l'ancien site, j'utilisais les mêmes adresses et le MX était celui d'OVH.

En DNS, je n'ai que le SPF d'infoManiak.
> SPF v=spf1 include:spf.infomaniak.ch -all
> ****.be.
> MX 5 mta-gw.infomaniak.ch.

Bonjour,

Bah là le problème c'est que sans from c'est OVH qui va le définir.

Pour la partie code je vous laisse vérifier car j'ai plus l'habitude d'utiliser PHPMailer pour respecter les RFC mails.

Cordialement, janus57

Ok, j'ai trouvé ce code https://help.ovhcloud.com/csm/fr-web-hosting-monitoring-automatic-emails?id=kb_article_view&sysparm_article=KB0052902#presentation-de-la-partie-scripts-emails sur la KB d'OVH
Je vais tester avec un script clone.
Merci

Bon, après deux essais, un cette nuit (automatique) et un maintenant, l'email s'envoie bien mais j'obtiens aussi tot une erreur dans script Mail / erreurs…

Je vais regarder du côté de PHPMailer