IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

envoi mail erreur header missing


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut envoi mail erreur header missing
    Bonjour

    Je souhaiterais que les futurs visiteurs de mon site puisse m'envoyé des emails à partir d'un formulaire.

    Voici l'erreur
    Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files (x86)\EasyPHP-5.3.9\www\endourworld\contact.php on line 23
    Code: php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    <?php
     
    if(!empty($_POST) && !empty($_POST['nomcontact']) && !empty($_POST['mailcontact']) && filter_var($_POST['mailcontact'],FILTER_VALIDATE_EMAIL) && !empty($_POST['textemessage']))
     
    {
    $nomcontact ='abc';
    $mailcontact = 'def';
    $textemessage = 'ghi';
    $email = 'jkl';
     
    $nom = strip_tags($nomcontact);
    $email = strip_tags($mailcontact);
    $textemessage = strip_tags($textemessage);
     
    $to ='monemail@outlook.fr';
    $subjet = $nom.'Vous envoi un message';
    $textemessage = nl2br($textemessage);
     
    $headers = 'from'.$email."\r\n";
    $headers = 'MIME-version: 1.0'."\r\n";
    $headers = 'content-type: text/html; charset=utf-8'."\r\n";
     
    mail($to,$subjet,$textemessage,$headers);
     
     
     
     
    }
    else{
     
    extract($_POST); 
     
    if(empty($nomcontact)){echo 'indiquez votre nom<br />';}
    if(empty($mailcontact) || !filter_var($mailcontact,FILTER_VALIDATE_EMAIL)){echo 'indiquez un email valide<br />';}
    if(empty($textemessage)){echo 'indiquez votre message<br />';}
    }
     
    ?>
    Je ne comprends pas pourtant, j'ai paramétré php.ini

    D'où provient l'erreur ?

    A bientôt

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Par défaut
    Bonjour,

    Pour le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = 'from'.$email."\r\n";
    Après "from" il faut ajouter ":" et "<>" pour commencer, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = 'From: <'.$email.">\r\n";
    J'en profite d'ailleurs pour recommander d'utiliser plutôt PHPMailer, qui est une des meilleures solutions pour l'envoi de mail en PHP, une documentation de mise en place ICI

    Si ça ne fonctionne quand même pas avec la correction, essaye de faire un tour ICI et éventuellement compléter ton code et/ou modifier les entêtes.

    Cordialement

    EDIT : J'ai testé votre code sur mon serveur et même avec votre syntaxe de header je reçois l'email. Peut-être que votre configuration php.ini à un problème ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Re bonjour

    J'ai changé le $headers ça ne fonction toujours pas.

    Voici les modifications que j'ai réalisé dans php.ini

    mail function]
    ; For Win32 only.
    ; http://php.net/smtp
    SMTP = smtp.orange.fr
    ; http://php.net/smtp-port
    smtp_port = 465

    ; For Win32 only.
    ; http://php.net/sendmail-from
    ;sendmail_from = emailFAI@orange.fr


    Ai-je oublié de modifier un élément ?


    A bientôt

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu n'as pas retiré le ; devant sendmail_from
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Merci

    Après avoir retiré ;

    Voici la nouvelle erreur

    Warning: mail() [function.mail]: Failed to connect to mailserver at "smtp.orange.fr" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files (x86)\EasyPHP-5.3.9\www\endourworld\contact.php on line 23

    Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files (x86)\EasyPHP-5.3.9\www\endourworld\contact.php on line 23
    C'est orange qui ma fourni les paramètres smtp.

    A bientôt

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Par défaut
    Re bonjour,

    Ils ne vous ont fournis que le port et le smtp ? Généralement il y a une méthode d'authentification, avec username/mot de passe, surtout en SSL. Il n'arrive sûrement pas à se connecter pour cette raison.

    Cordialement

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/05/2015, 14h42
  2. CDO envoie mail, erreur STARTTLS
    Par AcidWily dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/09/2009, 16h30
  3. [Automation]envoi mail : erreur composant ActiveX
    Par offspring dans le forum VBA Access
    Réponses: 6
    Dernier message: 08/05/2008, 16h02
  4. [VB6]erreur d'envoie mail, pourquoi??
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/05/2006, 14h43
  5. [Mail] Erreur d'envoi
    Par nebil dans le forum Langage
    Réponses: 10
    Dernier message: 02/04/2006, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo