GithubHelp home page GithubHelp logo

louisdsc / phpmailer Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 162 KB

Comment paramétrer et utiliser PHPMailer pour vos formulaires de contacts ou pour envoyer des mails

Home Page: https://github.com/LouisDSC/PHPMailer

PHP 100.00%
php mail phpmailer phpmailer-using

phpmailer's Introduction

PHPMailer

PHPMailer | Création et transfert d'e-mail pour vos formulaire PHP

Caractéristiques

  • Probablement le code le plus populaire au monde pour envoyer des e-mails depuis PHP !
  • Utilisé par de nombreux projets open source : WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla ! et beaucoup plus
  • Prise en charge SMTP intégrée - envoi sans serveur de messagerie local
  • Envoyez des e-mails avec plusieurs adresses À, CC, CCI et Répondre à
  • E-mails en plusieurs parties/alternatifs pour les clients de messagerie qui ne lisent pas les e-mails HTML
  • Ajouter des pièces jointes, y compris en ligne
  • Prise en charge du contenu UTF-8 et des encodages 8 bits, base64, binaires et imprimables entre guillemets
  • Authentification SMTP avec les mécanismes LOGIN, PLAIN, CRAM-MD5 et XOAUTH2 sur les transports SMTPS et SMTP+STARTTLS
  • Valide automatiquement les adresses e-mail
  • Protège contre les attaques par injection d'en-tête
  • Messages d'erreur dans plus de 50 langues !
  • Prise en charge de la signature DKIM et S/MIME
  • Compatible avec PHP 5.5 et versions ultérieures, y compris PHP 8.1
  • Espace de noms pour éviter les conflits de noms

Contexte mail()

La fonction PHP mail() envoie généralement via un serveur de messagerie local, généralement dirigé par un sendmail() binaire sur les plates-formes Linux, BSD et macOS, cependant, Windows n'inclut généralement pas de serveur de messagerie local ; Le client SMTP intégré de PHPMailer permet l'envoi d'e-mails sur toutes les plates-formes sans avoir besoin d'un serveur de messagerie local. Sachez cependant que la mail()fonction doit être évitée dans la mesure du possible ; il est à la fois plus rapide et plus sûr d'utiliser SMTP vers localhost.

Si vous n'utilisez pas PHPMailer, il existe de nombreuses autres excellentes bibliothèques que vous devriez consulter avant de lancer la vôtre. Essayez SwiftMailer , Laminas/Mail, ZetaComponents etc.

Installation

PHPMailer est disponible sur Packagist. La méthode recommandée pour installer PHPMailer est d'ajouter ce bout de code dans votre fichier composer.json :

"phpmailer/phpmailer": "^6.5"

ou si vous utilisez NPM & NodeJs :

composer require phpmailer/phpmailer

Dans le dossier vendor, le fichier script vendor/autoload.php est automatiquement généré par Composer et ne fait pas partir PHPMailer.

Si vous souhaitez utiliser la classe d'authentification Gmail XOAUTH2, vous devrez également ajouter une dépendance auleague/oauth2-client package dans votre fichie composer.json.

AUssi, si vous n'utilisez pas Composer, vous pouvez télécharger PHPMailer sous forme de fichier zip | ou le cloner, puis copiez le contenu du dossier PHPMailer dans l'un des include_path répertoires spécifiés dans votre Configuration PHP et chargez chaque fichier de classe manuellement :

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

Même si vous n'utilisez pas la classe SMTP, vous devez toujours charger la classe Exception car elle est utilisée en interne.

Installation importante !

Bien que l'installation de l'ensemble du package manuellement ou avec Composer soit simple, pratique et fiable, vous souhaiterez peut-être n'inclure que les fichiers vitaux dans votre projet. Au minimum, vous aurez besoin de src/PHPMailer.php.

  • Si vous utilisez SMTP, vous aurez besoin de src/SMTP.php. -Si vous utilisez POP avant SMTP ( très peu probable !), vous aurez besoin desrc/POP3.php.
  • Si vous utilisez XOAUTH2, vous aurez besoin de src/OAuth.php ainsi que des dépendances Composer pour les services avec lesquels vous souhaitez vous authentifier. Vraiment, c'est beaucoup plus simple d'utiliser Composer ! Je vous le conseil vivement !

Exemple que vous pouvez utiliser

<?php
//Importer les classes PHPMailer dans l'espace de noms global 
//Celles-ci doivent être en haut de votre script, pas à l'intérieur d'une fonction 
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

//Le chargeur automatique de Load Composer 
require 'vendor/autoload.php';

//Créer une instance ; passer `true` active les exceptions 
$mail = new PHPMailer(true);

try {
    //Paramètres du serveur
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Activer la sortie de débogage détaillée
    $mail->isSMTP();                                            // Envoi via SMTP
    $mail->Host       = 'smtp.example.com';                     //Définir le serveur SMTP pour envoyer via
    $mail->SMTPAuth   = true;                                   //Activer l'authentification SMTP 
    $mail->Username   = '[email protected]';                     //nom d'utilisateur SMTP 
    $mail->Password   = 'secret';                               // Mot de passe SMTP
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Activer le chiffrement TLS implicite 
    $mail->Port       = 465;                                    //Port TCP auquel se connecter ; utilisez 587 si vous avez défini `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`

    //Destinataires
    $mail->setFrom('[email protected]', 'Mailer');
    $mail->addAddress('[email protected]', 'Louis Japheth Kouassi');     //Ajouter un destinataire
    $mail->addAddress('[email protected]');               //Le nom est facultatif
    $mail->addReplyTo('[email protected]', 'Information');
    $mail->addCC('[email protected]');
    $mail->addBCC('[email protected]');

     //Pièces jointes 
    $mail->addAttachment('/var/tmp/file.tar.gz');         //Ajouter des pièces jointes
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Le nom est facultatif

    //Contenu
    $mail->isHTML(true);                                  // Définissez le format de l'e-mail sur HTML
    $mail->Subject = 'Sujet';
    $mail->Body    = 'Ceci est le corps du message HTML <b>en gras !</b>';
    $mail->AltBody = 'Ceci est le corps en texte brut pour les clients de messagerie non-HTML';

    $mail->send();
    echo 'Votre message a bien été envoyé';
} catch (Exception $e) {
    echo "Votre message n'a pas pu être envoyé. Erreur Mailer : {$mail->ErrorInfo}";
}

Langue Français

PHPMailer est par défaut en anglais, mais dans le dossier de langue , vous trouverez de nombreuses traductions pour les messages d'erreur PHPMailer que vous pourriez rencontrer. Pour spécifier une langue, vous devez indiquer à PHPMailer laquelle utiliser, comme ceci :

//Pour charger la version français
$mail->setLanguage('fr', '/optional/path/to/language/directory/');

Bonne chance !

phpmailer's People

Contributors

louisdsc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.