Maison >développement back-end >tutoriel php >Erreur PHP mail() : Pourquoi est-ce que je reçois « Plusieurs nouvelles lignes ou mal formées » ?

Erreur PHP mail() : Pourquoi est-ce que je reçois « Plusieurs nouvelles lignes ou mal formées » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-17 20:17:02563parcourir

PHP mail() Error: Why Am I Getting

Erreur PHP Mail() : navigation dans le problème « Nouvelles lignes multiples ou mal formées »

Les utilisateurs ont signalé avoir rencontré l'énigmatique « Nouvelles lignes multiples ou mal formées » trouvé dans l'erreur "additional_header" lors de l'utilisation de la fonction PHP mail(). Curieusement, cette erreur est apparue malgré l’absence de toute modification perceptible du script.

Les enquêtes ont conduit à des révélations surprenantes. L'erreur semble être spécifique au serveur, 1and1 étant le principal coupable. Alors que le déni de responsabilité de l'hébergeur jette le doute sur la configuration de son serveur, des soupçons persistent selon lesquels un changement non divulgué pourrait être en cause.

Après des recherches exhaustives sur Internet ayant donné des résultats limités, une solution a émergé. Le coupable réside dans une récente mise à jour de PHP de 5.5.25-1 à 5.5.26. Cette mise à niveau corrige une vulnérabilité de sécurité dans la fonction mail(), entraînant une interdiction stricte de plusieurs nouvelles lignes dans le paramètre supplement_headers.

Solution :

1 . Hygeine des en-têtes :

  • Examinez les en-têtes pour détecter toute instance de plusieurs nouvelles lignes (rr, r, rnrn, nn, n).
  • Éliminez toutes les nouvelles lignes superflues pour garantir l'intégrité de l'en-tête.

2. Allocation d'en-tête :

  • Désignez des en-têtes supplémentaires exclusivement pour la transmission des informations d'en-tête.
  • Abstenez-vous d'utiliser des en-têtes supplémentaires pour le contenu du message.

En adhérant à ces directives, les utilisateurs peuvent combattre l'erreur « Nouvelles lignes multiples ou mal formées » et restaurer la fonctionnalité transparente de la fonction mail(). Le correctif de sécurité (https://bugs.php.net/bug.php?id=68776) et le diff de code C correspondant (http://git.php.net/?p=php-src.git;a= blobdiff; f = ext/standard/mail.c; 2eecabdf8b0582e30;hpb=eee8b6c33fc968ef8c496db8fb54e8c9d9d5a8f9) fournissent des informations supplémentaires sur les nuances techniques de ce problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn