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

Langage PHP Discussion :

Utilisation de PHPmailer


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 409
    Points : 170
    Points
    170
    Par défaut Utilisation de PHPmailer
    Bonjour,

    j'ai supprimer le post d'origine car je pense qu'il n'a rien à voir avec mon problème

    Je suis en train de tester PHPMailer et j'ai cette erreur

    Parse error: syntax error, unexpected token "use" in /home/clients

    je pense que l'erreur provient du dossier sur mon site
    car le ne trouve pas la "class.Phpmailler" ??

    le dossier
    Nom : Sans titre.png
Affichages : 77
Taille : 48,3 Ko

    1) pourquoi quand je télécharge depuis GitHub je récupère un fichier PHPmailler-master

    Comme prévu j'ai décompresser le fichier dans mon dossier (PHPmailler)

    J'ai suivi les explications pour créer mon script comme suit
    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
     
    $message = 'Message du site timbres-de-france'.'<br>';
    						$message = $message.$date.'<br>';
    						$message = $message.'IP '.$_SERVER['REMOTE_ADDR'].'<br>';
    						$message = $message.'Nom du correspondant : '.$nom.'<br>';
    						//$message = $message.'Adresse de votre correspondant  :<a href="mailto:'.$mail.'">'.$mail.'</a> <br><br>';
    						$message = $message.'Adresse de votre correspondant  :'.$mail.'<br><br>';
    						$message = $message.nl2br(stripslashes($texte));
    						$texte_message = $message;
     
    //Parse error: syntax error, unexpected token "use" in /home/clients
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
     
    						require 'PHPMailer/src/Exception.php';
    						require 'PHPMailer/src/PHPMailer.php';
    						require 'PHPMailer/src/SMTP.php';
     
    						$mail = new PHPMailer();
    						$mail->IsSMTP();
    						$mail->Host = "xxx.com";  //Adresse du serveur SMTP 
    						$mail->Port = 465;                          //Port TCP du serveur SMTP
    						$mail->SMTPAuth = 1;                        //Utiliser l'identification
    						//$mail->CharSet = 'UTF-8';
     
    						if($mail->SMTPAuth){
    						   $mail->SMTPSecure = 'ssl';               //Protocole de sécurisation des échanges avec le SMTP
    						   $mail->Username = "xxx@et.com";
    					       $mail->Password = "xxxx";
    						}
     
    						$mail->From       =  'xxx@et.com';                //L'email à afficher pour l'envoi
    						$mail->FromName   = 'timbres-de-france.com';
     
     
    						$adresse_2 = 'xxx@et.com'; 
    						$mail->addAddress($adresse_2);
     
    						$mail->Body = $texte_message;
     
    						$mail->Subject = 'Message de timbres-de-france.com';               //Le sujet du mail
    						$mail->AltBody = $texte_message; 	            //Texte brut
    						$mail->IsHTML(false);
     
    						if (!$mail->send()) {
    							  echo $mail->ErrorInfo;
    						} else{
    							  echo 'Message bien envoyé';
    						}

    En attendant vos éclairages je souhaite a tous de bonnes fêtes de fin d'année
    78 ans quelques dents en moins, mais toujours envie d'apprendre

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 486
    Points : 5 052
    Points
    5 052
    Par défaut
    Bonjour,

    L'instruction use ne peut être utilisée qu'à l'intérieur des namespace ou des class et des méthodes qui utilisent des trait.

    Est ce que le code qui fonctionne est à l'intérieur d'un namespace ?

    Je me demande aussi pourquoi vous utilisez les require et use les deux en même temps? je crois que l'un ou l'autre est largement suffisant, parce que les deux syntaxes permettent de charger les fichiers/class dont on a besoin...

  3. #3
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 395
    Points : 795
    Points
    795
    Par défaut
    Bonjour,

    use peut être utilisé sans namespace (c-a-d dans l'espace global). https://github.com/PHPMailer/PHPMail...ples/mail.phps

    Les classes seront chargées avec use uniquement si on utilise un autoloader, dans le cas contraire il est bien nécessaire d'utiliser require en plus de use (cf. installation & loading)

    Le message indique une erreur de syntaxe.
    Est-ce que la version de PHP utilisée est bien >= 5.3 ?
    Vérifier les éventuelles erreurs sur la ligne juste avant le use (oubli du ; sur la ligne précédente par exemple).

  4. #4
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 409
    Points : 170
    Points
    170
    Par défaut
    Bonjour,
    bonne année a tous

    Ça ne marche toujours pas

    php 8.2

    le dossier à la racine du site

    Nom : Sans titre.png
Affichages : 35
Taille : 39,8 Ko



    l'erreur : Fatal error: Uncaught Error: Class "PHPMailer" not found in /home/clients

    pourtant la class est bien présente dans PHPMailer/src/PHPMailer.php

    mon code

    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
     
     
    			require_once('connex_mysqli/connex_base_gene.php');
     
     
     
    			if(!isset($_POST['nom'])) { $err=1; exit; }
    			if(!isset($_POST['mail'])) { $err=1; exit; }
    			if(!isset($_POST['texte'])) { $err=1; exit; }
     
     
    			$nom= trim(mysqli_real_escape_string($base_gene,$_POST['nom']));
    			$mail=trim(mysqli_real_escape_string($base_gene,$_POST['mail']));
    			$texte= $_POST['texte'];
     
    			$nom = valid_donnees($_POST['nom']);
    			$mail = valid_donnees($_POST['mail']);
    			$texte = valid_donnees($_POST['texte']);
     
    //*****************************************************************************************
    		if($nom=='' || $mail=='' || $texte=='') $err=1;
    	if($err == 99)
    	{			
    		$date = date("Y-m-d H:i:s");
    			// Expression régulière permettant de vérifier si le format d'une adresse e-mail est correct 
    		//if (filter_var($mail, FILTER_VALIDATE_EMAIL)) $err=99; else $err=5;
     
     
    						$message=$cont='Message du site timbres-de-france'.'<br>';
    						$message=$message.$date.'<br>';
    						$message=$message.'IP '.$_SERVER['REMOTE_ADDR'].'<br>';
    						$message=$message.'Nom du correspondant : '.$nom.'<br>';
    						$message=$message.'Adresse de votre correspondant  :<a href="mailto:'.$mail.'">'.$mail.'</a> <br><br>';
    						$message=$message.nl2br(stripslashes($texte));
    								// on déclare les paramètres du mail
    								$objet = 'Message de timbres-de-france.com';
    								$contenu = nl2br($message);
    								$destinataire = "@etik.com";
     
     
     
    			include("script_mail.php");
     
     
     
     
    	} // fin de if($err==99)
     
     
    	 unset($_POST);
     
    //////////    le script include   ////////
     
     
    				require 'PHPMailer/src/Exception.php';
    						include ('PHPMailer/src/PHPMailer.php');
    						require 'PHPMailer/src/SMTP.php';
     
    						$mail = new PHPMailer();
    						$mail->IsSMTP();
    						$mail->Host = "mail.infomaniak.com";  //Adresse du serveur SMTP 
    						$mail->Port = 465;                          //Port TCP du serveur SMTP
    						$mail->SMTPAuth = 1;                        //Utiliser l'identification
    						//$mail->CharSet = 'UTF-8';
     
    						if($mail->SMTPAuth){
    						   $mail->SMTPSecure = 'ssl';               //Protocole de sécurisation des échanges avec le SMTP
    						   $mail->Username = "xx@etik.com";
    					       $mail->Password = "xxxxx";
    						}
     
    						$mail->From       =  'xx@etik.com';                //L'email à afficher pour l'envoi
    						$mail->FromName   = 'timbres-de-france.com';
     
    						//$adresse_1 = 'xxx@orange.fr';
    						$adresse_2 = 'xxx@etik.com'; 
    						//$mail->addAddress($adresse_1);
    						$mail->addAddress($adresse_2);
     
    						$mail->Body = $contenu;
     
    						$mail->Subject = 'Message de timbres-de-france.com';               //Le sujet du mail
    						$mail->AltBody = $contenu; 	            //Texte brut
    						$mail->IsHTML(false);
     
    						if (!$mail->send()) {
    							  echo $mail->ErrorInfo;
    						} else{
    							  		$err=3;
    						}
     
    ?>
    78 ans quelques dents en moins, mais toujours envie d'apprendre

  5. #5
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 395
    Points : 795
    Points
    795
    Par défaut
    Le chemin dans require ne semble pas correct.

    Où se situe le fichier source php ?
    Où se situe le fichier PHPMailer.php par rapport à ton fichier source ?

Discussions similaires

  1. Utilisation de PhpMailer
    Par bermai dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/01/2013, 10h30
  2. [PHPMailer] Utilisation du SMTP de 1and1
    Par sterix92 dans le forum Langage
    Réponses: 5
    Dernier message: 10/05/2009, 00h58
  3. [PHPMailer] Erreur lors de l'utilisation de la fonction mail
    Par onlytime dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/04/2008, 17h11
  4. [PHPMailer] Utilisation de phpMailer et Hotmail
    Par ekremyilmaz dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 03/08/2007, 11h27
  5. [PHPMailer] modifications à effectuer avant utilisation de phpMailer ?
    Par leclone dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/02/2007, 17h43

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