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 :

Envoi automatique de mail depuis un PC


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Envoi automatique de mail depuis un PC
    Bonjour,

    Je dois envoyer occasionnellement quelques mails de manière automatique depuis un PC au moyen de la fonction "mail()" de PHP en utilisant pour cela EasyPHP-5.3.1 en local (box internet, Windows 10 édition familiale).

    Dans un premier temps j'ai installé "sendmail" (dans "C:\Programmes (x86)\Dipisoft\SendMail") à partir du téléchargement "https://telecharger.tomsguide.fr/Sen...0313-2037.html", mais cela ne fonctionne pas et je ne vois pas pourquoi :
    Nom : f1.gif
Affichages : 591
Taille : 14,9 Ko
    Nom : f2.gif
Affichages : 609
Taille : 15,1 Ko
    La fonction "mail()" renvoie bien TRUE, mais le mail n'arrive jamais dans la messagerie. Résultat affiché à l'écran :
    Test envoi email PHP
    Retour = TRUE

    Les sources des fichiers "index.php", "php.ini" et "sendmail.ini" sont joints à cette discussion dans le fichier "EnvoiAutoMail.pdf".

    Dans un deuxième temps j'ai téléchargé un wamp/sendmail chez "https://www.webtolosa.com/2017/09/19...ec-wampserver/" que j'ai simplement recopié, après dézippage, dans le répertoire "C:\wamp\sendmail" que j'ai créé moi-même :
    Nom : f3.gif
Affichages : 549
Taille : 15,7 Ko
    Cela fonctionne encore moins, le retour de la fonction "mail()" n'est pas affiché à l'écran, l'écran est affiché avec le message "Adresse introuvable" dans le titre de l'onglet ("Hum, nous ne parvenons pas à trouver ce site . . .") et je ne comprends pas davantage.
    (entre-temps j'ai modifié "php.ini", pour remplacer "sendmail_path = 'C:\Programmes (x86)\Dipisoft\SendMail\SenMail.exe -t -i'" par "sendmail_path = 'C:\wamp\sendmail\senmail.exe -t -i'")

    J'ai aussi testé chacun des deux "sendmail" ci-dessus, en remplaçant l'adresse de messagerie hotmail par une adresse de messagerie free (en remplaçant "smtp.live.com" par "smtp.free.fr"), mais sans plus de succès.

    Quelqu'un a-t-il une petite idée pourquoi cela ne fonctionne pas ?

    Merci d'avance pour votre aide.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Points : 64
    Points
    64
    Par défaut
    Bonjour
    Avec la class PHPMailer 5.26 ça fonctionne en changeant un paramètre dans php.init je crois
    y a de la doc. sur internet à ce sujet

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Persévérons encore un peu
    Bonjour,

    Merci à resus, je n'ai pas encore testé avec "PHPMailer 5.26".
    Je veux d'abord voir si j'arrive à faire fonctionner une de mes deux solutions initiales ("Dipisoft" ou "wamp").

    J'ai déjà fait un tas de tests en essayant différents paramètres (Ports : 25, 465, 587. Messageries : hotmail, free, sfr).
    Avec la première solution (Dipisoft), la fonction "mail()" retourne toujours TRUE mais l'email n'est jamais reçu.
    Avec la deuxième solution (wamp), la fonction "mail()" retourne toujours FALSE (et bien entendu l'email n'est jamais reçu).

    Je suspecte un problème de FAI. Je vais poursuivre mes recherches dans les forums.

    Si vous avez une idée, n'hésitez surtout pas à nous en faire part !

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Rien n'empêche d'utiliser PHPMailer avec une de tes solutions...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Test avec PHPMailer
    Bonjour,

    Après avoir installé "PHPMailer", j'obtiens les messages suivants à l'exécution :
    Test envoi email PHP

    Warning: require(phpmailer\class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in C:\Program Files (x86)\EasyPHP-5.3.1\www\index.php on line 9

    Fatal error: require() [function.require]: Failed opening required 'phpmailer\class.phpmailer.php' (include_path='.;C:\php5\pear') in C:\Program Files (x86)\EasyPHP-5.3.1\www\index.php on line 9

    Voici ma source "index.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
    <html>
    <head>
    <title>Essai</title>
    </head>
    <body>
    <?php
    echo 'Test envoi email PHP<br />';
     
    require('phpmailer/class.phpmailer.php'); 
     
    $mail = new PHPMailer();
    $mail->Host = 'smtp.sfr.fr';
    $mail->SMTPAuth   = true;
    $mail->Port = 25; // Par défaut
     
    // Authentification
    $mail->Username = "monAdresseMail@sfr.fr";
    $mail->Password = "monPassword";
     
    // Expéditeur
    $mail->SetFrom('monAdresseMail@sfr.fr', 'monNom monPrénom');
    // Destinataire
    $mail->AddAddress('monAdresseMail@sfr.fr', 'monNom monPrénom');
    // Objet
    $mail->Subject = 'Titre du 1er test email automatique';
     
    // Votre message
    $mail->MsgHTML('Contenu du 1er test email automatique');
     
    // Envoi du mail avec gestion des erreurs
    if(!$mail->Send())
      { echo 'Erreur : ' . $mail->ErrorInfo; }
    else
      { echo 'Message envoyé !'; } 
     
    ?>
    </body>
    </html>

    J'ai installé "PHPMailer" de la manière suivante :
    1) pour télécharger PHPMailer, je vais sur la page "https://www.connecty.fr/tutoriels/en...-phpmailer.php"
    qui explique comment faire, puis je clique sur le lien suivant dans cette page :
    "Téléchargez la dernière version de PHPMailer (à ce jour : version 5.2.6)",
    2) je recopie le répertoire téléchargé “PHPMailer-master“ dans le répertoire “C:\Program Files (x86)\EasyPHP-5.3.1\www\“,
    puis je renomme le répertoire recopié “PHPMailer-master“ en “PHPMailer“ :
    Nom : g1.gif
Affichages : 464
Taille : 15,7 Ko

    Quelqu'un comprend-il ce qui ne va pas ?

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Y a un truc qui va pas dans ton inclusion de la classe (ligne 9 de index.php). La classe n'est pas à cet endroit et ne porte pas ce nom-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'PHPMailer.php');

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Test avec PHPMailer
    Bonjour et merci,

    Après avoir effectué la correction suggérée par LaurentSc, j'obtiens maintenant le message suivant :
    Test envoi email PHP

    Parse error: syntax error, unexpected '[' in C:\Program Files (x86)\EasyPHP-5.3.1\www\PHPMailer\src\PHPMailer.php on line 288
    La ligne 288 concernée est la suivante :
    public $SMTPOptions = [];
    D'autres lignes comportent le même type de syntaxe dans la même source "PHPMailer.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
    public $SMTPOptions = [];     (ligne 288)
    protected $SingleToArray = [];     (ligne 392)
    protected $to = [];     (ligne 514)
    protected $cc = [];     (ligne 521)
    protected $bcc = [];     (ligne 528)
    protected $ReplyTo = [];     (ligne 535)
    protected $all_recipients = [];     (ligne 547)
    protected $RecipientsQueue = [];     (ligne 562)
    protected $ReplyToQueue = [];     (ligne 573)
    protected $attachment = [];     (ligne 580)
    protected $CustomHeader = [];     (ligne 587)
    protected $boundary = [];     (ligne 607)
    protected $language = [];     (ligne 616)
    $addresses = [];     (ligne 1073)
    $toArr = [];     (ligne 1633)
    $bad_rcpt = [];     (ligne 1724)
    $callbacks = [];     (ligne 1739)
    $hostinfo = [];     (ligne 1833)
    $addresses = [];     (ligne 2044)
    $type = [];     (ligne 2700)
    $mime = [];     (ligne 2819)
    $cidUniq = [];     (ligne 2820)
    $incl = [];     (ligne 2821)
    $matches = [];     (ligne 3208)
    $this->to = [];     (ligne 3441)
    $this->cc = [];     (ligne 3453)
    $pathinfo = [];     (ligne 3962)
    Est-ce que je n'aurais pas téléchargé la bonne version de PHPMailer ?

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Le souci vient sûrement d'ailleurs car j'ai la même version. Je continue à chercher cet après-midi...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Test avec PHPMailer
    J'utilise la version EasyPHP-5.3.1.

    D'après la page suivante :
    il semble bien que la notation public $SMTPOptions = []; soit une notation nouvelle reconnue uniquement par les versions d'EasyPHP > 5.3.
    Les versions d'EasyPHP.5.3 et antérieures ne reconnaitraient donc que la notation équivalente ancienne : public $SMTPOptions = array();.

    Ce qui confirmerait que la version PHPMailer que j'ai téléchargée n'est pas compatible avec EasyPHP-5.3.1. Il faudrait donc :
    - soit que je télécharge une autre version de PHPMailer,
    - soit que je modifie le code de la version que j'ai téléchargée, afin que le code soit reconnu.

    Qu'en pensez-vous ?

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Pour savoir quelle version de PHP tu utilises, fait un PHPInfo...(documente-toi, c'est simple). Et si version trop ancienne, oui, il faut upgrader ton Easyphp.

    A mon avis, dans ton index.php, il faut aussi rajouter
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use PHPMailer\src\Exception;
    require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'Exception.php');
    et dans PHPMailer.php et dans Exception.php, remplacer le namespace par namespace PHPMailer\src;.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Test avec PHPMailer
    Bonjour et merci,

    J'ai modifié le code PHP de PHPMailer de manière à ce qu'il ne plante plus (modifications "[]" en "array()").

    Cela plante maintenant dans ma source "index.php" sur l'instruction "$mail = new PHPMailer();" avec le message suivant :
    Fatal error: Class 'PHPMailer' not found in C:\Program Files (x86)\EasyPHP-5.3.1\www\index.php on line 13

    Cela plante aussi avec des messages équivalents en remplaçant la syntaxe ci-dessus "$mail = new PHPMailer();" par chacune des syntaxes ci-dessous :
    "$mail = new PHPMailer\PHPMailer();" (Fatal error: Class 'PHPMailer\PHPMailer' not found in C:\Program Files (x86)\EasyPHP-5.3.1\www\index.php on line 13)
    "$mail = new PHPMailer;" (Fatal error: Class 'PHPMailer' not found in C:\Program Files (x86)\EasyPHP-5.3.1\www\index.php on line 13)
    "$mail = new PHPMailer\PHPMailer;" (Fatal error: Class 'PHPMailer\PHPMailer' not found in C:\Program Files (x86)\EasyPHP-5.3.1\www\index.php on line 13)

    Voici le début de ma source "index.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
    <html>
    <head>
    <title>Essai</title>
    </head>
    <body>
    <?php
    echo 'Test envoi email PHP<br />';
     
    use PHPMailer\src\Exception;
    require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'Exception.php');
    require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'PHPMailer.php');
     
    $mail = new PHPMailer();
    $mail->Host = 'smtp.sfr.fr';
    $mail->SMTPAuth   = true;
    $mail->Port = 25; // Par défaut
    . . .
    Voici le début de la source "PHPMailer.php" (en enlevant les lignes de commentaires) :
    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
    <?php
    namespace PHPMailer\PHPMailer;
    class PHPMailer
    {
        public $Priority = null;
        public $CharSet = 'iso-8859-1';
        public $ContentType = 'text/plain';
        public $Encoding = '8bit';
        public $ErrorInfo = '';
        public $From = 'root@localhost';
        public $FromName = 'Root User';
        public $Sender = '';
        public $Subject = '';
        public $Body = '';
        public $AltBody = '';
       . . .
    Pourquoi ma source ne trouve-t-elle pas la classe "PHPMailer" ?

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    car elle n'est pas là où tu le mets dans le code...

    dans index.php, rajoute use PHPMailer\src\PHPMailer; (pour indiquer à l'autoloader où la classe PHPMailer est)

    dans PHPMailer.php, remplace la ligne 2 par namespace PHPMailer\src; et idem dans Exception.php (même namespace à la place de celui existant)

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Test avec PHPMailer
    Bonjour et merci,

    Par la même occasion, j'ai aussi remplacé "namespace PHPMailer\PHPMailer" par "namespace PHPMailer\src;" dans les sources suivantes :
    - "\EasyPHP-5.3.1\www\PHPMailer\GET_OAUTH_TOKEN.php",
    - "\EasyPHP-5.3.1\www\PHPMailer\src\OAuth.php",
    - "\EasyPHP-5.3.1\www\PHPMailer\src\POP3.php",
    - "\EasyPHP-5.3.1\www\PHPMailer\src\SMTP.php".
    Après cela les tests ne plantent plus et retournent le message suivant tant attendu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Test envoi email PHP
    Message envoyé !
    Mais quand je vais voir dans ma messagerie : toutes les boites de réception sont désespérément vides.

    Cela ne change rien, si à la place du port 25, j'essaie avec le port 465 ou avec le port 587.
    J'ai créé une messagerie chez mon FAI, mais même en utilisant cette messagerie cela ne fonctionne pas.

    Le problème commence à paraitre insoluble, comment faut-il faire pour que cela fonctionne réellement ?
    (y aurait-il un blocage au niveau de la box internet ?)

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    J'étais absent cet après-midi, donc vient seulement de te lire...Pour tenter d'élucider ton problème, je te propose de faire l'essai chez moi avec ton code (je le modifierai en mettant ma propre adresse mail). Le plus simple, si c'est trop lourd de mettre tous les sources ici, est de zipper le répertoire, donc ça va créer un fichier *.zip, puis de le transmettre via le service gratuit de transfert de gros fichier de Free : http://dl.free.fr/.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Ci-joint mon répertoire "www" zippé : "www-WinRAR.rar"
    Bonsoir et merci,

    Voici ci-joint mon répertoire "www" zippé : "www-WinRAR.rar"
    www-WinRAR.rar

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    désolé mais langue au chat :
    Erreur : Could not instantiate mail function.
    néanmoins si tu testes en local, c'est :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $mail->Host = 'localhost';
    $mail->SMTPAuth   = true;
    $mail->Port = 25;
    //$mail->SMTPSecure = 'ssl';

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    La ligne suivante est-elle affichée lors de l'exécution de mes sources ?

    Erreur : Could not instantiate mail function.

  18. #18
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    C'était bien le cas ce matin, mais je ne faisais un essai qu'en local, donc t'ayant lu, j'ai fait l'essai que je voulais faire : exécuter ce code en ligne. Du coup,
    Test envoi email PHP
    Message envoyé !
    Par contre, le mail arrive dans les SPAMs (peut-être toi aussi ?). Je te laisse regarder comment traiter ça...

  19. #19
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Points : 64
    Points
    64
    Par défaut
    Bonjour
    Si ça peut vous aider - ne pas oublier le charset et l'adresse de retour qui indique au serveur smtp votre authenticité
    Ma fonction d'envoi mail sur le serveur. Mais si je me souviens bien en local ça fonctionne aussi.
    Si vous arrivez dans le Spam du serveur FAI c'est que le serveur smtp du FAI a analysé le mail et l'a considéré comme du spam donc il manque un paramètre ou un des param. est faux
    C'est vrai qu'on y reste longtemps parfois pour aboutir par essai - erreur à l'objectif. Mais quand ça fonctionne on n'y touche plus. A part le fait que les FAi deviennent susceptibles sur les envois en nombre et n'hésitent plus à vous déclarer Spammeur pour plusieurs heures. J'ai l'exemple de FREE si longtemps tolérant. J'avais un envoi automatique de cartes d'anniversaire avec une tache CRON mais j'ai dû dépoussiérer les mails qui dataient (boite pleine, inexistante ou périmée)

    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
        require_once 'Mailer5-2-6/src/PHPMailer.php';
        require_once 'Mailer5-2-6/src/SMTP.php';
     
      $mail = new PHPMailer();
      if (defined('CHARSET')) { }else{define('CHARSET', "UTF-8"); }
      ini_set('date.timezone', 'Europe/Paris');
      $mail->CharSet = "UTF-8";
      $mail->IsSMTP(); // active SMTP
      $mail->SetLanguage('fr');
      $mail->SMTPDebug = 0;  // debogage: 1 = Erreurs et messages, 2 = messages seulement
      $mail->SMTPAuth = true;  // Authentification SMTP active
      $mail->SMTPSecure = 'ssl'; 
      $mail->Host = HOST;
      $mail->Port = PORT;
      $mail->Username = USER; // utilisateur Gmail
      $mail->Password = PASS; // Mot de passe Gmail
      $mail->From= $from;
      $mail->FromName= $from_name;
      $mail->AddReplyTo(NAMEX);
      $mail->AddAddress($adr);
      $mail->Subject=$sujet;
      $mail->Body=$body;  
      if($mail->Send())   {  
         $fait_mail=true;  // revoie true si ok
      } else {  
         $fait_mail=false;
      }  
      $mail->SmtpClose();

  20. #20
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    @resus : t'ayant lu, j'ai fait l'essai suivant (en ligne) :
    Code php : 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
    <html>
    <head>
    <title>Essai</title>
    </head>
    <body>
    <?php
    echo 'Test envoi email PHP<br />';
     
    use PHPMailer\src\Exception;
    use PHPMailer\src\PHPMailer;
    use PHPMailer\src\smtp;
    require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'Exception.php');
    //require('phpmailer\class.phpmailer.php');
    require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'PHPMailer.php');
    require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'smtp.php');
     
    $mail = new PHPMailer();
    $mail->Host = 'smtp.gmail.com';
    $mail->SMTPAuth   = true;
    $mail->Port = 387;
    $mail->SMTPSecure = 'tsl';
    ini_set('date.timezone', 'Europe/Paris');
      $mail->CharSet = "UTF-8";
      $mail->IsSMTP(); // active SMTP
      $mail->SetLanguage('fr');
      $mail->SMTPDebug = 1;  // debogage: 1 = Erreurs et messages, 2 = messages seulement
      $mail->SMTPAuth = true;  // Authentification SMTP active
     
     
    // Authentification
    $mail->Username = "mon_adresse@gmail.com";
    $mail->Password = "mdp";
     
    // Exp�diteur
    $mail->SetFrom('mon_adresse@gmail.com', 'Nom Prénom');
     
    // Destinataire
    $mail->AddAddress('mon_adresse@gmail.com', 'Nom Prénom');
     
    // Objet
    $mail->Subject = 'Titre du 1er test email automatique';
     
    // Votre message
    $mail->MsgHTML('Contenu du 1er test email automatique');
     
    // Envoi du mail avec gestion des erreurs
    if(!$mail->Send())
      { echo 'Erreur : ' . $mail->ErrorInfo . "<br />"; }
    else
      { echo 'Message envoyé !' . "<br />"; }
    //echo 'Erreur : ' . $mail->ErrorInfo . "<br />";
    $mail->SmtpClose();  
    ?>
    </body>
    </html>
    Et le mail n'est pas envoyé et ne va même pas dans les spams...

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/11/2012, 01h08
  2. [XL-2010] Envoi automatique de mail depuis une boîte générique Outlook
    Par ferreol dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/01/2012, 10h51
  3. [Servlet]Envoi automatique de mails d'alerte
    Par spk4ever dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/05/2006, 14h06
  4. Envoi automatique de mails d'alerte
    Par spk4ever dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/05/2006, 11h11
  5. [Mail] envoi automatique de mail
    Par calitom dans le forum Langage
    Réponses: 17
    Dernier message: 04/04/2006, 16h21

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