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

PHP & Base de données Discussion :

Éviter courriel envoyé dans spam [thunderbird]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut Éviter courriel envoyé dans spam [thunderbird]
    Bonjour à tous et toutes ,

    Je me permets de venir vers vous pour un problème avec la fonction : email() .
    En effet , j'ai un formulaire bootstrap qui envoie un mail à un destinataire.
    Tout se déroule comme prévu sauf que sur ma boîte mail , thunderbird , le message arrive dans les spams plus encore les données dans l'email sont en continue il n'y a pas de retours à la ligne.
    J'ai adapté la fonction mail() pour ne pas qu'il l'envoie dans les spams mais cela ne fonctionne pas.

    extrait de mail() concernant le paramétrage pour Thunderbird
    To define a mail sensitivity you have to put this line in the headers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
            $headers = "MIME-Version: 1.0\n" ;
            $headers .= "Content-Type: text/html; charset=\"UTF-8\"\n";
     
            $headers .= "Sensitivity: Personal\n";
     
    $status   = mail($to, $subject, $message,$headers);
    ?>
    Possible Options:
    Sensitivity: Normal, Personal, Private and Company-Confidential

    These will be recognised and handled in Outlook, Thunderbird and others.

    Je vous joins aussi contact.php et vous remercie pour votre aide ...
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
        <?php
    /*
     *  CONFIGURE EVERYTHING HERE
     */
     
    // an email address that will be in the From field of the email.
    //$from = 'devillers@hotmail.fr';
     
    // an email address that will receive the email with the output of the form
    $sendTo = 'Formulaire de contact  <devillers@developpement-durable.gouv.fr>';
     
    // subject of the email
    $subject = 'Nouveau message de Formulaire de contact ';
     
    // form field names and their translations.
    // array variable name => Text to appear in the email
     
    $fields = array('name' => 'Nom', 'telephone' => 'Téléphone', 'need' => 'Besoin', 'email' => 'Email', 'message' => 'Message'); 
     
     
    // message that will be displayed when everything is OK :)
    $okMessage = 'Formulaire de contact bien envoyé. Merci et à bientôt!';
     
    // If something goes wrong, we will display this message.
    $errorMessage = 'Problème pour faire parvenir le message ; Rééssayez plus tard.';
     
    /*
     *  LET'S DO THE SENDING
     */
     
    // if you are not debugging and don't need error reporting, turn this off by error_reporting(0);
    error_reporting(E_ALL & ~E_NOTICE);
     
    try
    {
     
        if(count($_POST) == 0) throw new \Exception('Form is empty');
     
        $emailText = "Vous avez un nouveau message de votre formulaire de contact\n=============================\n";
     
        foreach ($_POST as $key => $value) {
            // If the field exists in the $fields array, include it in the email 
            if (isset($fields[$key])) {
                $emailText .= "$fields[$key]: $value\n";
            }
        }
     
     
       // All the neccessary headers for the email.
      //$headers = array('Content-Type: text/plain; charset="UTF-8";',
         //'From: ' . $from_name,         
         //'Reply-To: ' . $from,
        //  'Return-Path: ' . $from,
     
      //);  
     
         // En-têtes additionnels
    		 $headers[] = 'MIME-Version: 1.0';
        	 $headers[] .= 'Content-type: text/html; charset=UTF-8';
      	  	 $headers[] .= 'Sensitivity: Normal\n';
         	 $headers[] = 'To: JCD <devillers@developpement-durable.fr>';      // boîte thunderbird
        	 $headers[] = 'From: Formulaire de contact <devillers@hotmail.fr>';
     
     
        // Send email
      $status   = mail($sendTo, $subject, $emailText, implode("\r\n", $headers)); 
    	//$status   = mail($sendTo, $subject, $emailText, implode("\n", $headers));
     
     
     
     
        $responseArray = array('type' => 'success', 'message' => $okMessage);
    }
    catch (\Exception $e)
    {
        $responseArray = array('type' => 'danger', 'message' => $errorMessage);
    }
     
     
    // if requested by AJAX request return JSON response
    if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
        $encoded = json_encode($responseArray);
     
        header('Content-Type: application/json');
     
        echo $encoded;
    }
    // else just display the message
    else {
        echo $responseArray['message'];
    }
     
     
    $header .= "Content-type: text/plain; charset=utf-8\r\n";
    $destinataire=$_POST['email'];
    mail($destinataire, 'Accusé de réception', 'Votre mail a bien été envoyé sur le site : site.fr , MERCI', $header);
    -"Mais ici on attend pas jusqu'au Dimanche ?"

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Salut,

    Pour le spam, as-tu essayé d'envoyer un message en tant qu'une page html 5 valide ?

    genre :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $message="<!DOCTYPE html>
         <html lang='fr'>
         <head><title>titre de la page</title></head>
         <body><!-- ici tu met le contenu du message --></body>
    </html>";
    ...
    $status   = mail($to, $subject, $message,$headers);

  3. #3
    Invité
    Invité(e)
    Par défaut
    1- A LIRE : Fonction mail de PHP
    [extrait]
    Expéditeur
    Vous devez absolument utiliser un entête From contenant une adresse mail sur le nom de domaine de votre site.

    N’utilisez jamais une adresse d’expéditeur différente de votre site, par exemple @hotmail, @gmail, @orange, etc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers .= 'From: "Webmaster de Votresite.com" <webmaster@votresite.com>';

    2-
    Citation Envoyé par devillers Voir le message
    ...les données dans l'email sont en continue il n'y a pas de retours à la ligne....
    Normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                $emailText .= "$fields[$key]: $value\n";
    • Le \n" donne un retour à la ligne dans le code.
    • Si tu veux un retour à la ligne "à l'affichage" (= HTML) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                $emailText .= "$fields[$key]: $value<br/>\n";
    Dernière modification par Invité ; 01/12/2019 à 13h23.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut
    Bonsoir à vous deux ,

    La rédaction de la page pour l'envoi du formulaire dans la boîte mail demande d'être rigoureux je n'avais pas remarqué que : Le champ From: devait être un email de mon domaine ( pas de mail extérieur à Nuxit @hotmail.fr, @gmail.com, etc…) sous peine de voir les envois bloqués par l'antispam . Du coup j'ai créé une adresse mail où le site est hébergé ; pour les retours à la ligne il fallait y penser les explications sont limpides .
    Merci et passez une bonne soirée .
    -"Mais ici on attend pas jusqu'au Dimanche ?"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. E-mail envoyé dans le spam
    Par Abou Zar dans le forum Langage
    Réponses: 3
    Dernier message: 19/03/2010, 12h08
  2. Réponses: 1
    Dernier message: 23/09/2005, 18h30
  3. [Date] création d'une date à envoyer dans mySql
    Par michaelbob dans le forum JDBC
    Réponses: 4
    Dernier message: 15/09/2005, 17h59
  4. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 12h18
  5. Éviter les doublons dans une requete
    Par royrremi dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/08/2004, 19h37

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