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 :

Configuration de phpmailer


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut Configuration de phpmailer
    Bonjour à tous, comme beaucoup je pense depuis longtemps j'utilisais la fonction mail() mais malheureusement tous les mails arrivent toujorus dans les spams, en cherchant un peu sur le net j'ai donc opter pour phpmailer, mais après avoir télécharger sur le lien officiel je n'ai pas l'impression que j'ai une bonne configurer, si vous pouvez alors m'aiguiller voilà mon ficher qui me permet d'avoir un mail à mes membres .

    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
    <?php
    header('Content-Type: application/json');
    session_start();
    include("../mysqlcon.php");
    require("src/PHPMailer.php");
    require("src/Exception.php");
    require("src/OAuth.php");
    require("src/POP3.php");
    require("src/SMTP.php");
    if(isset($_POST['check'])) {
     
    	$the_check = explode("-",$_POST['check']);
        for ($i =0; $i<count($the_check); $i++)
        {
          $current_check = $the_check[$i];
    	  $q = "Select * from commercant where id='$current_check'";
    	  $q = $conn->query($q);
    	  $f = mysqli_fetch_array($q);
     
    	  $boundary = md5(rand());
    	$validation = $f["validation"];
    	$email = $f["email"];
    	$pseudo = $f["nomgerant"];
    	$message_html = $_POST["message"];
    	$message_html = nl2br($message_html);
     
     
     
    	$mail->isSMTP(); // Paramétrer le Mailer pour utiliser SMTP 
    $mail->Host = '5.196.xx.xx'; // Spécifier le serveur SMTP
    $mail->SMTPAuth = true; // Activer authentication SMTP
    $mail->Username = 'contact@xxxx.fr'; // Votre adresse email d'envoi
    $mail->Password = 'xxx'; // Le mot de passe de cette adresse email
    $mail->SMTPSecure = 'tls'; // Accepter SSL
    $mail->Port = 465;
    $mail->SMTPOptions = array(
    'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
    )
    );
    $mail->setFrom('contact@xxx.fr', 'TDM'); // Personnaliser l'envoyeur
    $mail->addAddress($email, $pseudo); // Ajouter le destinataire
     
    $mail->addReplyTo('contact@xxx.fr', 'Alain xxx'); // L'adresse de réponse
     
     
    $mail->isHTML(true); // Paramétrer le format des emails en HTML ou non
     
    $mail->Subject = 'Information';
    $mail->Body = $message_html;
     
    	 $mail->send();
    	  $mail->SMTPDebug = 1;
        }
     
    	echo json_encode(array("reponse"=>"ok"));
    }
    ?>

  2. #2
    Membre éclairé Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Par défaut
    Hello toulousain3117,
    tes mails arrivent aumoins chez les destinataires avec cette config ?
    voici le lien d'une config que je trouve parfaite.
    https://github.com/PHPMailer/PHPMail...l_options.phps.
    personnellement j 'aurais utilisé le port 587 au lieu du 465 .
    A+

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    Meme pas ils partent
    Étant donner que j'utilise jquery je vois dans la console sur le fichier ça me met erreur 500

    Je vais tester ça merci par contre il me manque des fichier dans le dossier que j'ai télécharger.

    Le fichier autoload par exemple il y est pas

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,


    TESTE ton script :
    • en mettant directement l'URL dans la barre d'adresse
    • en ajoutant : $_POST['check'] ='.....'; (au début)

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    voila le code avec les recommandations, mais j'ai une page blanche et dans la console erreur 500

    en utilisant bien sur les recommandations de mettre $_POST au debut

    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?php
    session_start();
    include("../mysqlcon.php");
    $_POST['check'] ='-7'
    //Import the PHPMailer class into the global namespace
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\SMTP;
     
    //SMTP needs accurate times, and the PHP time zone MUST be set
    //This should be done in your php.ini, but this is how to do it if you don't have access to that
    date_default_timezone_set('Etc/UTC');
     
     
    //Create a new PHPMailer instance
    $mail = new PHPMailer;
     
    //Tell PHPMailer to use SMTP
    $mail->isSMTP();
     
    //Enable SMTP debugging
    // SMTP::DEBUG_OFF = off (for production use)
    // SMTP::DEBUG_CLIENT = client messages
    // SMTP::DEBUG_SERVER = client and server messages
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;
     
    //Set the hostname of the mail server
    $mail->Host = '5.196.89.53';
     
    //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
    $mail->Port = 587;
     
    //Set the encryption mechanism to use - STARTTLS or SMTPS
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
     
    //Custom connection options
    //Note that these settings are INSECURE
    $mail->SMTPOptions = array(
        'ssl' => [
            'verify_peer' => true,
            'verify_depth' => 3,
            'allow_self_signed' => true,
            'peer_name' => 'smtp.example.com',
            'cafile' => '/etc/ssl/ca_cert.pem',
        ],
    );
     
     
    	$the_check = explode("-",$_POST['check']);
        for ($i =0; $i<count($the_check); $i++)
        {
          $current_check = $the_check[$i];
    	  $q = "Select * from commercant where id='$current_check'";
    	  $q = $conn->query($q);
    	  $f = mysqli_fetch_array($q);
     
    	  $boundary = md5(rand());
    	$validation = $f["validation"];
    	$email = $f["email"];
    	$pseudo = $f["nomgerant"];
     
     
     
     
    //=====Déclaration des messages au format texte et au format HTML.
     
     
    $message_html = $_POST["message"];
    $message_html = nl2br($message_html);
    $mail->SMTPAuth = true;
     
    //Username to use for SMTP authentication - use full email address for gmail
    $mail->Username = 'contact@xxx.fr';
     
    //Password to use for SMTP authentication
    $mail->Password = 'xxx';
     
    //Set who the message is to be sent from
    $mail->setFrom('contact@tesdemuret.fr', 'First Last');
     
    //Set who the message is to be sent to
    $mail->addAddress(''.$email.'', 'John Doe');
     
    //Set the subject line
    $mail->Subject = 'PHPMailer SMTP options test';
     
    //Read an HTML message body from an external file, convert referenced images to embedded,
    //convert HTML into a basic plain-text alternative body
     
    $mail->Body = $message_html;
    //Send the message, check for errors
    if (!$mail->send()) {
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message sent!';
    }
     
     
     
     
     
     
     
     
     
     
     
     
        }
     
     
     
    ?>

  6. #6
    Invité
    Invité(e)
    Par défaut
    il manque le point-virgule


    pour afficher les erreurs PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    	ini_set('display_errors', 1);
    // Afficher les erreurs et les avertissements
    	error_reporting(E_ALL); 	// en TEST !!

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    toujours pareil

    page blanche

    edit : j'ai activé, les erreurs php, du coup voilà l'erreur

    Fatal error: Uncaught Error: Class 'PHPMailer' not found in /var/www/clients/client0/web1/web/mobile/acces/envoi_msg_com.php:17 Stack trace: #0 {main} thrown in /var/www/clients/client0/web1/web/mobile/acces/envoi_msg_com.php on line 17
    j'ai pourtant mis en include tous les fichier que j'ai en ma possession

  8. #8
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    salut,

    ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //Import the PHPMailer class into the global namespace
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\SMTP;
    ne fait aucunement l'import du fichier source PHPMailer.
    Il ne fait qu'indiquer à PHP une dépendance.

    Soit tu utilises au autoloader qui va se charger de trouver l'emplacement du fichier .php contenant la définition de la classe PHPMailer soit tu l'inclus manuellement avec un include_once 'chemin/vers/le/fichier/source/de/PHPMailer';

  9. #9
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    J'ai justement laisser tel quelle avant de modifier et cela ne me retrouver pas les classes

    J'ai pu voir sur certain forum qu'il fallait installer avec composé.json

    Mais comment cela fonctionne ?

    edit : j'ai pu retrouver les classe de phpmailer

    voila l'erreur que j'ai :

    2020-04-24 13:55:55 SERVER -> CLIENT: 220 ns335121.ip-5-196-89.eu ESMTP Postfix (Debian/GNU)
    2020-04-24 13:55:55 CLIENT -> SERVER: EHLO tesdemuret.fr
    2020-04-24 13:55:55 SERVER -> CLIENT: 250-ns335121.ip-5-196-89.eu250-PIPELINING250-SIZE250-VRFY250-ETRN250-STARTTLS250-ENHANCEDSTATUSCODES250-8BITMIME250-DSN250 SMTPUTF8
    2020-04-24 13:55:55 CLIENT -> SERVER: STARTTLS
    2020-04-24 13:55:55 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
    SMTP Error: Could not connect to SMTP host.
    2020-04-24 13:55:55 CLIENT -> SERVER: QUIT
    2020-04-24 13:55:55 SERVER -> CLIENT:
    2020-04-24 13:55:55 SMTP ERROR: QUIT command failed:
    SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
    Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
    Notice: Undefined index: validation in /var/www/clients/client0/web1/web/mobile/acces/envoi_msg_com.php on line 62
    2020-04-24 13:55:55 SERVER -> CLIENT: 220 ns335121.ip-5-196-89.eu ESMTP Postfix (Debian/GNU)
    2020-04-24 13:55:55 CLIENT -> SERVER: EHLO tesdemuret.fr
    2020-04-24 13:55:55 SERVER -> CLIENT: 250-ns335121.ip-5-196-89.eu250-PIPELINING250-SIZE250-VRFY250-ETRN250-STARTTLS250-ENHANCEDSTATUSCODES250-8BITMIME250-DSN250 SMTPUTF8
    2020-04-24 13:55:55 CLIENT -> SERVER: STARTTLS
    2020-04-24 13:55:55 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
    SMTP Error: Could not connect to SMTP host.
    2020-04-24 13:55:55 CLIENT -> SERVER: QUIT
    2020-04-24 13:55:55 SERVER -> CLIENT:
    2020-04-24 13:55:55 SMTP ERROR: QUIT command failed:
    SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
    Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

  10. #10
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    aprés quelques vérification et de recherche, j'ai désormais le mail qui s'envoi bien

    par contre j'ai deux probleme qui se pose maintenant :


    le destinataire le reçoit dans les spams

    et le message reçu n'est pas connectement encodé

    comment remédie ces deux probleme ?


    cordialement

  11. #11
    Membre confirmé
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Août 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Août 2018
    Messages : 40
    Par défaut
    le destinataire le reçoit dans les spams
    tu aurra beau utiliser tout les api de mail que tu veut , si ton serveur n'est pas configuré correctement au niveau DNS reverse DNS.
    specialement si ton serveur n'est pas déclaré comme MX (mail exchanger)
    tes mails serront toujours considéré comme des spams.... c'est plutot de ce coté la qu'il faut chercher a mon avis.
    p.s. une configuration DNS met 24h a etre propagée , attention a ne pas faire n'importe quoi , de plus attention a ne pas définir ton serveur php comme le serveur principal
    car si ton serveur est configuré comme MX il peu potentiellement recevoir des mails...


    Example with MX Record Syntax - Multiple mail servers

    mydomain.com. 14400 IN MX 0 mydomain.com.
    mydomain.com. 14400 IN MX 30 server2.mydomain.com

    You can have unlimited MX entries for Fallback or backup purpose.If all the MX records are equal Preference numbers, the client simply attempts all equal Preference servers in random order, and then goes to MX record with the next highest Preference number.
    http://www.debianhelp.co.uk/dnsrecords.htm

  12. #12
    Membre confirmé
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Août 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Août 2018
    Messages : 40
    Par défaut
    p.s.2

    si tu as déja envoyé bcp de mail une petite verification de l'adresse IP publique de ton serveur , sur les moteurs de blacklisting ne serrais pas inutile non plus :

    https://www.ultratools.com/tools/spamDBLookup

Discussions similaires

  1. PHPMailer - configuration smtp
    Par risbo38 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 26/07/2017, 16h31
  2. PhpMailer configuration proxy
    Par miabi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 19/11/2010, 09h27
  3. configuration phpmailer sous windows et linux
    Par osnet dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 27/05/2010, 13h25
  4. [PHPMailer] Comment configurer le paramètre HOST ?
    Par SpaceFrog dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 04/12/2007, 15h55
  5. [PHPMailer] installation et configuration
    Par abraxis dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/05/2007, 07h08

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