Php envoyant du courrier via Yandex smtp. Envoi de courrier via SMTP depuis un serveur local

Maison / Installation de programmes

PHPMailer est une bibliothèque très pratique et populaire pour envoi d'e-mail messages de votre site. Cet article décrit les paramètres de base de la bibliothèque et fournit des exemples de code pour l'envoi de messages. PHPMailer a peut-être dans son assortiment tout ce que vous pourriez souhaiter en travaillant avec le courrier : l'envoi de différentes manières, via différents serveurs, dont via smtp, la possibilité de crypter et de signer vos lettres pour qu'elles ne finissent pas dans les spams et bien plus encore.

Vous pouvez télécharger la bibliothèque PHPMailer depuis https://github.com/PHPMailer/PHPMailer (le bouton "Cloner ou télécharger").

Tout d'abord, je vais en examiner quelques-uns exemples simples pour expliquer clairement comment envoyer des e-mails à l'aide de PHPMailer.

Envoi d'e-mails via la fonction mail() à l'aide de PHPMailer

Si vous souhaitez envoyer des emails depuis votre hébergement via votre serveur de messagerie, alors tout est assez simple et ressemblera à ceci :

// Inclut la bibliothèque PHPMailer use PHPMailer\PHPMailer\PHPMailer; nécessite "PHPMailer/PHPMailer.php" ; // Crée une lettre $mail = new PHPMailer(); $mail->setFrom(" [email protégé]", "Ivan Ivanov"); // de qui (e-mail et nom) $mail->addAddress(" [email protégé]", "Vasya Petrov"); // à qui (email et nom) $mail->Subject = "Test"; // sujet de la lettre // texte HTML lettres $mail->msgHTML("

Bonjour!

Ceci est une lettre test.

"); // Envoyer if ($mail->send()) ( echo "Message envoyé!"; ) else ( echo "Erreur : " . $mail->ErrorInfo; )

Comme vous pouvez le constater, tout est assez simple : nous connectons la bibliothèque, renseignez de qui, à qui, le sujet et le texte de la lettre et l'envoyons. L'envoi d'e-mails de cette manière ne fonctionnera qu'à partir d'adresses e-mail de votre domaine (sauf si elles sont liées à d'autres messageries).

Envoi d'e-mails via SMTP à l'aide de PHPMailer en utilisant l'exemple de Yandex et Google

Vous pouvez également envoyer une lettre via un autre service de messagerie, par exemple via Yandex. Le code ressemblera à ceci :

// Inclut la bibliothèque PHPMailer use PHPMailer\PHPMailer\PHPMailer; utilisez PHPMailer\PHPMailer\SMTP ; nécessite "PHPMailer/PHPMailer.php" ; nécessite "PHPMailer/SMTP.php" ; // Crée une lettre $mail = new PHPMailer(); $mail->isSMTP(); // Envoi via SMTP $mail->Host = "smtp.yandex.ru"; // Adresse du serveur SMTP $mail->SMTPAuth = true; // Activer l'authentification SMTP $mail->Username = "login"; // votre nom d'utilisateur (sans domaine et @) $mail->Password = "password"; // votre mot de passe $mail->SMTPSecure = "ssl"; // cryptage SSL $mail->Port = 465 ; // port de connexion $mail->setFrom(" [email protégé]", "Ivan Ivanov"); // de qui $mail->addAddress(" [email protégé]", "Vasya Petrov"); // à qui $mail->Subject = "Test"; $mail->msgHTML("

Bonjour!

Ceci est une lettre test.

"); // Envoyer if ($mail->send()) ( echo "Message envoyé!"; ) else ( echo "Erreur : " . $mail->ErrorInfo; )

Envoi d'e-mails via Google a une mise en garde : vous devez compte Google autoriser l'accès à des applications non fiables. Pour ce faire, vous devez vous connecter à votre compte https://myaccount.google.com, accéder à la sécurité, accéder à la section « Applications non fiables qui ont accès à votre compte » et y passer sur « Autorisé ». Au moment de la rédaction, cette page est https://myaccount.google.com/u/0/lesssecureapps.

$mail->Hôte = "smtp.gmail.com"; // Adresse du serveur SMTP $mail->SMTPAuth = true; // Activer l'authentification SMTP $mail->Username = "login"; // votre nom d'utilisateur $mail->Mot de passe = "mot de passe"; // votre mot de passe $mail->SMTPSecure = "ssl"; // cryptage SSL $mail->Port = 465 ; //port de connexion

Si vous exécutez le programme d'envoi via smtp pour la première fois, il est conseillé de l'utiliser en plus avant d'envoyer $mail->SMTPDebug = 1 ; pour recevoir tous les messages du client et du serveur SMTP, c'est-à-dire L'ensemble du processus de connexion, d'autorisation, etc. sera affiché à l'écran, ce qui est très utile pour déboguer votre programme.

Envoi d'un e-mail avec une pièce jointe à l'aide de PHPMailer

Tout est assez simple ici, il suffit d'utiliser la méthode ajouter une pièce jointe. Je vais donner un exemple et en même temps en démontrer quelques autres fonctionnalités supplémentaires:

// Inclut la bibliothèque PHPMailer use PHPMailer\PHPMailer\PHPMailer; utilisez PHPMailer\PHPMailer\Exception ; nécessite "PHPMailer/PHPMailer.php" ; nécessite "PHPMailer/Exception.php" ; // Crée une lettre $mail = new PHPMailer; $mail->CharSet = "UTF-8" ; $mail->setFrom(" [email protégé]", "Ivan Ivanov"); // de qui $mail->addReplyTo(" [email protégé]", "Ivan Ivanov"); // adresse de retour $mail->addAddress(" [email protégé]", "Vasya Petrov"); // à qui $mail->Subject = "Test"; // subject $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // récupère le "corps" de la lettre du fichier $mail->AltBody = "Lettre en texte brut"; // lettre en texte brut si le client ne supporte pas le HTML $mail->addAttachment("my_file.txt"); // joins un fichier $mail- >addAttachment("phpmailer) .jpg"); // joindre le deuxième fichier // Envoyer if ($mail->send()) ( echo "Message envoyé!"; ) else ( echo "Erreur : " . $mail- >Informations d'erreur ; )

Vous pouvez ajouter plusieurs adresses de destinataires à l'aide de addAddress. Ou, si nécessaire, vous pouvez au contraire effacer toutes les adresses des destinataires en utilisant la méthode clearAddresses(). Vous pouvez effacer toutes les pièces jointes en utilisant clearAttachments().

Vous pouvez également utiliser Ajouter une image intégrée pour ajouter une pièce jointe (généralement une image) à l'e-mail, qui est destinée à être utilisée dans le code HTML et ne sera pas disponible au téléchargement. Un exemple d'utilisation d'une image dans une lettre qui n'est pas disponible en téléchargement :

// Inclut la bibliothèque PHPMailer use PHPMailer\PHPMailer\PHPMailer; nécessite "PHPMailer/PHPMailer.php" ; //Créer une lettre $mail = new PHPMailer; $mail->IsHTML(true); $mail->setFrom(" [email protégé]", "Ivan Ivanov"); $mail->addAddress(" [email protégé]", "Vasya Petrov"); $mail->Sujet = "Test"; $mail->AddEmbeddedImage("phpmailer.jpg","testImage"); $mail->Body = "

Image en code HTML

"; // Envoyer $mail->envoyer();

Vous pouvez donc envoyer lettres avec images, qui se trouvent uniquement dans le corps de la lettre, mais ne peuvent pas être téléchargés en pièce jointe. Ces images peuvent être utilisées n'importe où dans le code html de la lettre, il vous suffit de spécifier le cid de l'image que vous avez utilisé dans AddEmbeddedImage au lieu de l'adresse url.

Envoi d'email signé et crypté via PHPMailer

Par défaut, PHPMailer crypte tous les messages envoyés. Vous pouvez désactiver le cryptage des e-mails uniquement lors de l'envoi d'e-mails via SMTP à l'aide du code :

$mail->SMTPSecure = faux ; $mail->SMTPAutoTLS = faux ;

À signez la lettre avec la signature DKIM, vous devez effectuer plusieurs étapes :

  • Générez des clés privées et publiques pour votre domaine
  • Ajouter un enregistrement DNS pour un domaine TXT avec une clé publique
  • Configurez la signature DKIM dans PHPMailer avant d'envoyer un e-mail

Je vais maintenant décrire chaque étape un peu plus en détail.

Générer des clés privées et publiques

Si vous disposez d'un hébergement Linux et avez accès à Shell, générer des fichiers de clés est aussi simple que de décortiquer des poires ; il vous suffit d'exécuter 2 commandes avec vos droits d'utilisateur normaux :

Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pubout

Respectivement, test-privé.pem Et test-public.pem- ce sont des clés privées et publiques. Vous devez les enregistrer dans un dossier qui ne sera pas accessible aux visiteurs du site ou à toute autre personne que vous.

S'il n'est pas possible d'exécuter des commandes dans le shell, alors pour générer des clés privées et publiques et les enregistrer dans des fichiers, vous pouvez utiliser le code suivant :

$domain = "test.ru" ; // votre domaine $privatekeyfile = "test-private.pem"; // nom du fichier dans lequel sera écrite la clé privée $publickeyfile = "test-public.pem"; // nom du fichier dans lequel sera écrite la clé publique if (file_exists($privatekeyfile)) ( echo "

Utiliser des clés existantes

"; $privatekey = file_get_contents($privatekeyfile); $publickey = file_get_contents($publickeyfile); ) else ( echo "

Créer des clés"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); openssl_pkey_export_to_file($pk, $privatekeyfile); $pubKey = openssl_pkey_get_details($pk) ); $publickey = $pubKey["key"]; file_put_contents($publickeyfile, $publickey = file_get_contents($privatekeyfile);

Clé privée (gardez-la privée !) :

" . $clé privée . "
" ; écho "

Clé publique :

" . $clé publique ."
";

Attention! N'oubliez pas de vous assurer que le dossier dans lequel les fichiers seront enregistrés est accessible en écriture.

Ajouter un enregistrement DNS avec une clé publique

Un enregistrement DNS est nécessaire pour que les serveurs de messagerie qui recevront vos lettres puissent vérifier la signature sur la lettre en lisant l'enregistrement DNS de votre domaine. En règle générale, vous pouvez ajouter un enregistrement DNS dans le panneau de contrôle de votre domaine ou dans votre panneau de contrôle d'hébergement. Si vous ne savez pas comment ajouter une entrée, contactez le support de votre fournisseur d'hébergement.

Vous devez ajouter un enregistrement DNS comme celui-ci :

Nom de l'entrée : mail._domainkey.test.ru. (à la fin il y a un point ".")

Durée de vie : 3600 (ou selon ce qui sera la valeur par défaut)

Type de message : SMS

Signification: v=DKIM1; h=sha256; t = s ; p = VOTRE_PUBLIC_KEY

Dans le nom de l'entrée test.ru doit être remplacé par votre nom de domaine. Vous remplacez les mots "YOUR_PUBLIC_KEY" par le texte que vous avez reçu à l'étape précédente après "Public key", sans "-----BEGIN PUBLIC_KEY-----" et "-----END PUBLIC KEY- -- --", uniquement la clé elle-même. Dans ce cas, toutes les lignes de la clé sont nécessaires concaténer en une longue ligne afin qu'il n'y ait pas de sauts de ligne.

Configuration de la signature DKIM dans PHPMailer et envoi d'un email

Il ne reste plus qu'à effectuer quelques réglages PHPMailer avant d'envoyer la lettre et elle sera signée. Je pense que l'exemple suivant rendra tout clair :

// Inclut la bibliothèque use PHPMailer\PHPMailer\PHPMailer; nécessite "PHPMailer/PHPMailer.php" ; // Crée une lettre $mail = new PHPMailer; $mail->CharSet = "UTF-8" ; $mail->setFrom(" [email protégé]"); $mail->addAddress(" [email protégé]"); $mail->Sujet = "Ceci est un test"; $mail->msgHTML("

Ceci est un essai

"); // Configuration d'une signature DKIM $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "mail"; // Envoyer $ mail->envoyer();

Bien sûr test.ru vous devez changer votre nom de domaine, et test-privé.pem au chemin complet et au nom du fichier de clé privée créé lors de l’étape de génération de clé.

Désormais, vos e-mails envoyés via PHPMailer seront signés DKIM avec votre clé privée.

Pour qu'un certain site Web ait la possibilité de fonctionner de manière efficace et productive, sa création doit être abordée de manière aussi responsable et prudente que possible. Le choix du système qui sera utilisé pour créer une boutique en ligne mérite une attention particulière. Le fait est qu'une plateforme commerciale spécialisée dans la vente de biens ou de services doit permettre la mise en œuvre de toutes les fonctionnalités nécessaires et être simple à utiliser, tant pour les administrateurs impliqués dans la maintenance et le remplissage des sites que pour les clients des boutiques en ligne. De nombreuses personnes et entreprises confrontées à la question de choisir un CMS qui leur convient analysent s'il convient de choisir Magento ou OkayCMS. Comparons les fonctionnalités et les capacités de ces moteurs de sites Web.

Lorsqu'elle travaille sur son propre site Web, une personne ou une entreprise devra déployer beaucoup d'efforts - ce n'est que dans ce cas que vous pourrez compter sur des résultats positifs et obtenir un outil vraiment efficace. L’une des questions fondamentales à résoudre avant même de commencer à créer un site Web sera de savoir comment décider de l’option CMS la plus adaptée. Ensuite, nous comparerons deux CMS : Joomla ou OkayCMS, et ferons attention aux fonctionnalités de chacun d'eux.

Avoir votre propre site Web est l’une des exigences fondamentales pour une entreprise efficace et prospère. Les statistiques indiquent clairement une augmentation du nombre d'achats de biens divers et de commandes de services via Internet. Compte tenu de cela, la plupart des entreprises commerciales sont déjà conscientes de la nécessité de disposer de leur propre site Web. Cependant, le simple fait de disposer d’une ressource Internet ne suffit pas pour compter sur son efficacité, sa rentabilité et les bénéfices commerciaux attendus.

Lorsque vous vous préparez à créer votre propre site Web ou à ouvrir une boutique en ligne, vous devez prendre en compte et analyser de nombreux problèmes, ainsi que résoudre divers problèmes. Ce n'est que dans ce cas que vous pourrez compter sur le fait que votre projet apportera des résultats positifs et pourra pleinement répondre à vos attentes. Parmi les différentes problématiques liées au développement d’une boutique en ligne, la question du choix d’un CMS mérite une attention particulière. Pour vous permettre de décider plus facilement du moteur optimal pour vous-même, dans

Lorsqu'ils envisagent de créer leur propre site Internet pour une future boutique en ligne, un assez grand nombre de personnes et même des entreprises spécialisées dans la vente sont confrontées à un choix difficile et extrêmement important : lequel des CMS existants choisir. Si vous réfléchissez à ce qu'il faut choisir : PrestaShop ou OkayCMS, nous vous proposons de lire cet article, dans lequel nous comparerons ces deux systèmes de création de sites Internet, notamment de boutiques en ligne.

2019-08-05

Bonjour, cher visiteur !

Veuillez me pardonner le retard dans la mise à jour du blog. Mais il existe une explication tout à fait compréhensible à cela. Après tout, c'était l'été, la datcha, les invités, la forêt, l'eau et bien plus encore, ce qui ne m'a pas permis d'aborder les problématiques de création d'un site internet. Mais maintenant, je me suis un peu libéré, les invités sont partis et je pense que maintenant je pourrai certainement y prêter attention.

Ainsi, après que dans le dernier article nous ayons connecté le courrier de notre domaine à l'un des services de messagerie, voyons maintenant comment vous pouvez envoyer du courrier électronique depuis le site. De plus, de manière à ce que nos courriers ne finissent pas dans le SPAM, mais soient livrés de manière fiable et avec un degré de probabilité élevé à nos destinataires.

En général, il existe une fonction mail() intégrée pour envoyer des lettres en PHP. Mais il convient de noter que malgré la simplicité de cette méthode (dans ce cas, pour envoyer des lettres il suffit de spécifier une seule ligne de code avec certains paramètres), l'utilisation de cette option présente un inconvénient important lié au problème du SPAM. .

Le fait est que les filtres anti-SPAM des serveurs de messagerie côté destinataire ne favorisent pas vraiment les courriers envoyés via la fonction mail(). Et dans la plupart des cas, ces messages sont filtrés voire supprimés avant de parvenir au destinataire.

Et afin d'éliminer autant que possible de tels cas, une autre option est généralement utilisée, dans laquelle les lettres sont envoyées comme si elles avaient été effectuées par un service de messagerie tiers.

Cette méthode est appelée envoi de courrier via SMTP avec autorisation. Ce que nous examinerons aujourd'hui en utilisant l'exemple de la soumission d'un formulaire retour. De plus, pour cela nous utiliserons la bibliothèque PHPMailer assez connue et populaire, qui permet d'organiser tout simplement l'envoi de courriers via SMTP.

  • Comment nous enverrons les lettres de commentaires
  • Créer un formulaire de commentaires
  • Installation de la bibliothèque PHPMailer
  • Nous créons un script pour envoyer du courrier via SMTP
  • Vérification de l'envoi d'e-mails
  • Fichiers sources site

Comment nous enverrons les lettres de commentaires

Avant de commencer travaux pratiques Après avoir envoyé des lettres de commentaires, nous déciderons d’abord de la manière dont nous procéderons.

Le formulaire de feedback est conçu pour permettre à l'utilisateur de communiquer avec l'administrateur du site pour lui transmettre son message. Généralement, ce formulaire se compose de plusieurs champs et d'un bouton « Soumettre ».

En principe, pour envoyer un email, il suffit d'utiliser seulement quelques champs qui fournissent suffisamment d'informations sur l'utilisateur et le contenu du message, tels que :

  • "Nom" - pour saisir le nom de l'expéditeur du message ;
  • "E-mail" - pour l'adresse e-mail expéditeur;
  • « Objet du message » ;
  • "Texte du message".

Bien que vous puissiez en ajouter d’autres. Par exemple, un numéro de téléphone, si cela est vraiment nécessaire.

Dans notre cas, ces lettres seront envoyées à l’adresse de l’administrateur du site depuis une véritable boîte aux lettres avec autorisation sur le service de messagerie auquel notre domaine est connecté.

Puisque dans l'article précédent, nous nous sommes concentrés sur la vérification de la connexion du courrier de domaine au service Yandex.Mail, nous enverrons du courrier pour cette option. Bien que ce ne soit pas important. Ci-dessous, vous verrez les options qui, une fois modifiées, vous permettront d'envoyer des e-mails via le serveur de messagerie Mail.ru.

En tant que véritable boîte aux lettres à partir de laquelle les lettres seront envoyées, nous utiliserons le compte d'un utilisateur de messagerie de domaine nouvellement créé, par exemple avec l'adresse [email protégé]. Et nous enverrons ces lettres à boîte aux lettres administrateur [email protégé], que nous avons créé précédemment dans l'article précédent.

Ainsi, l'expéditeur de la lettre du formulaire de feedback sera la boîte aux lettres [email protégé]., et le destinataire - [email protégé]. Dans ce cas, toutes les informations sur l'utilisateur qui a envoyé le message avec son contenu seront transmises dans le corps de la lettre envoyée.

Créer un formulaire de commentaires

Après avoir décidé de la procédure d'envoi des lettres, nous allons maintenant créer un formulaire de commentaires avec lequel nous le ferons.

Ci-dessous le code HTML de ce formulaire, que nous placerons sur la page "Contacts" (fichier kontakty.php dans le répertoire des articles).

    "article" >

    Contacts

    Retour

    "contact" action = "#" méthode = "poste" >

    Formulaire de commentaires

    Pour toutes questions, demandes et propositions commerciales, vous pouvez nous contacter en utilisant le formulaire de commentaires ci-dessous.

    "bloc contact" >

    "entrée-contact" >

    "texte" identifiant = "nom-du-contact" nom = "nom-du-contact" titre = "Le nom doit être en russe et contenir au moins 3 caractères" motif = "{3,}" requis >

  1. "contact vide" >

    "entrée-contact" >

    "e-mail" identifiant = "contact-e-mail" nom = "contact-e-mail" requis >

  2. "sujet-contact" >

  3. "contact-commentaire" >

  4. "bouton contact" >

    "soumettre" nom = "bouton contact" valeur = "Envoyer" >

Fig.1 Code HTML du formulaire de commentaires

Vous pouvez voir à quoi ressemble finalement le formulaire de commentaires présenté ici dans la capture d'écran suivante.

Ainsi, la forme souhaitée est créée. Et maintenant, vous pouvez passer aux questions de traitement et d'envoi de données sous forme d'e-mail.

Installation de la bibliothèque PHPMailer

Comme indiqué précédemment, pour envoyer du courrier, nous utiliserons la bibliothèque PHPMailer, ce qui simplifiera grandement l'envoi de courrier électronique via Protocole SMTP avec autorisation sur un service de messagerie tiers.

Pour l'installer, vous devez télécharger fichiers nécessaires. Cela peut être fait à partir du service Web GitHub à l'aide de Composer (un gestionnaire de dépendances de packages pour PHP). Ou téléchargez simplement les fichiers nécessaires de la manière habituelle.

capture d'écran 73

Vous trouverez ci-dessous la page du service Web GitHub, où est marqué le lien vers le téléchargement régulier de la bibliothèque PHPMailer.

A part ça, dernière version 6.0.7, qui a été enregistré au moment de la rédaction de cet article, peut être téléchargé à partir des documents joints.

Dans tous les cas, le fichier d'archive résultant doit être décompressé, après quoi le dossier PHPMailer-master extrait avec tout son contenu doit être placé à la racine du site. En même temps, par souci de simplicité, vous pouvez le renommer PHPMailer. Ci-dessous se trouve le contenu du dossier PHPMailer placé dans le répertoire racine du site.

Nous avons donc installé la bibliothèque PHPMailer. Après quoi, nous pouvons commencer à créer un script avec lequel nous enverrons des messages électroniques depuis notre site Web.

Nous créons un script pour envoyer du courrier via SMTP

Pour composer le script, il suffit d'utiliser les recommandations d'utilisation de PHPMailer données sur la page GitHub, que nous avons précédemment utilisées pour télécharger la bibliothèque.

Ils indiquent notamment qu'au début du script, il est nécessaire d'importer les classes PHPMailer dans l'espace de noms global. Et des lignes spécifiques de code correspondant sont données. Il existe également des exemples d'utilisation des propriétés et des méthodes de PHPMailer, notamment pour la possibilité d'envoyer du courrier via SMTP.

Mais si cela ne suffit pas, vous pouvez également utiliser la documentation, qui contient une description de toutes les propriétés et méthodes de cette bibliothèque.

capture d'écran 74

Vous trouverez ci-dessous le code de script pour envoyer du courrier à partir du formulaire de commentaires via SMTP avec autorisation. Où toutes les lignes liées à PHPMailer sont données avec explication et mises en évidence sur un fond clair.

Le reste de la partie, y compris les fragments liés à la réception et au traitement des données du formulaire, que nous devions auparavant utiliser dans d'autres processeurs, est indiqué par un fond sombre. Ils ont été abordés plus en détail plus tôt dans un article consacré spécifiquement aux problèmes d'obtention et de vérification des données d'un formulaire en PHP. Où nous avons également parlé de la fonction utilisateur universelle pour valider et traiter les données du formulaire check_symbol().

Nous placerons ce script dans le même fichier kontakty.php dans lequel nous avons précédemment créé le formulaire de commentaires.

    //----Script pour envoyer du courrier via SMTP en utilisant PHPMailer----

    //Importez les classes PHPMailer dans l'espace de noms global. Ils doivent être en haut du script, pas à l'intérieur de la fonction

    utiliser PHPMailer\PHPMailer\PHPMailer ;

    utiliser PHPMailer\PHPMailer\Exception ;

    si (!vide($_POST["bouton-contact" ])) (

    $name = $_POST["nom-contact" ];

    $name = check_symbol ($name, "Name" , "1" , "/^+\z/iu" );

    $email = $_POST["contact-email" ];

    $email = check_symbol ($email, "E-mail" , "1" , "/^+@(+\.)+(2,6)\z/i");

    $sujet = $_POST["contact-sujet" ];

    $subject = check_symbol ($subject, "Message Subject" , "1" , "0" );

    $commentaire = $_POST["contact-commentaire" ];

    $commentaire = check_symbol ($commentaire, "Texte du message", "1" , "0" );

    si (!vide($GLOBALS["alerte" ])) (

    $alerte = "Les données du formulaire n'ont pas été envoyées. Les erreurs suivantes ont été trouvées :\n".$alerte;

    inclure"alerte.php" ;

    autre {

    //Connexion de la bibliothèque

    exiger"PHPMailer/src/PHPMailer.php" ;

    exiger"PHPMailer/src/Exception.php" ;

    exiger"PHPMailer/src/SMTP.php" ;

    $mail = nouveau PHPMailer(); //Initialiser la classe

    $de = " [email protégé]" ; //Adresse email à partir de laquelle la lettre est envoyée

    $à = " [email protégé]" ; //Adresse du destinataire

    $mail -> estSMTP(); //Utiliser le protocole SMTP

    $mail -> Hôte = "smtp.yandex.ru" ; //Adresse du serveur de messagerie

    $mail -> SMTPAuth = vrai ; //Activer le mode d'autorisation

    $mail -> Nom d'utilisateur = " [email protégé]" ; //Connexion à partir d'un domaine de messagerie connecté à un service de messagerie tiers (dans ce cas, Yandex.Mail)

    $mail -> Mot de passe = "27MrDon89" ; //Mot de passe pour la messagerie du domaine

    $mail -> SMTPSecure = "ssl" ; //Protocole de chiffrement

    $mail -> Port = "465" ; //Port du serveur SMTP

    $mail -> CharSet = "UTF-8" ; //Codage

    $mail -> setFrom ($from, "Administrateur" ); //Adresse et nom de l'expéditeur

    $mail -> addAddress ($to, "Administrateur" ); //Adresse et nom du destinataire

    $mail -> estHTML ( vrai ); //Définir le format de l'e-mail sur HTML

    $mail -> Sujet = "Formulaire de commentaires soumis"; //Objet de l'e-mail (titre)

    $mail -> Corps = "

    Nom de l'expéditeur : $nom

    Adresse de l'expéditeur : $email

    Objet du message : $sujet

    Contenu du message : $commentaire

    " ; //Contenu du message

    $mail -> AltBody = "Texte de lettre alternatif"; //E-mail alternatif si le client de messagerie ne prend pas en charge le format HTML

    $mail -> SMTPDebug = 0 ; //Activer le débogage SMTP : 0 - désactivé (pour une utilisation normale), 1 = messages client, 2 - messages client et serveur

    si($mail -> envoyer()) (

    $alerte = "Message envoyé"; //Affiche un message dans la boîte de dialogue du navigateur concernant l'envoi réussi de la lettre

    autre {

    $alerte = "Erreur, l'e-mail ne peut pas être envoyé : ".$mail -> ErreurInfo ; // Afficher un message d'erreur

    inclure"alerte.php" ;

Fig.5 Script pour l'envoi d'e-mails via SMTP avec autorisation

Comme vous pouvez le constater, toutes les lignes directement liées à l'envoi d'un e-mail, dans lesquelles sont précisées les méthodes et propriétés nécessaires, sont accompagnées de commentaires. Cela n'a donc aucun sens de se répéter, mais nous ne pouvons nous attarder que sur certains d'entre eux, qui nécessitent en effet des explications complémentaires, à savoir :

1. Étant donné que la lettre est envoyée depuis un service de messagerie tiers, les paramètres correspondant au serveur SMTP spécifique sont appliqués ici. Dans ce cas, pour le cas d'utilisation du serveur Yandex.Mail, les valeurs de propriété suivantes sont appliquées :

  • Propriété Hôte(pos.28) - Adresse du serveur de messagerie avec la valeur smtp.yandex.ru ;
  • Propriété SMTPSécurisé
  • Propriété Port

Ces valeurs de propriété ont été extraites de la page Yandex.Help présentée dans la capture d'écran suivante.

Mais ces informations peuvent également être obtenues à partir d’autres ressources. Pour ce faire, saisissez simplement la requête appropriée dans un moteur de recherche, par exemple : « Serveur smtp Yandex ». Où trouver un grand nombre de références sur cette question.

De la même manière, les valeurs des paramètres peuvent être obtenues à partir d'autres serveurs SMTP. Vous trouverez ci-dessous une capture d'écran de la page d'aide Mail.ru, qui affiche les paramètres du serveur SMTP du service de messagerie Mail.ru.

Et ainsi, dans le cas de l'utilisation de Mail.ru comme serveur SMTP tiers, les valeurs suivantes des propriétés de la classe PHPMailer doivent être appliquées :

  • Propriété Hôte(pos.28) - Adresse du serveur de messagerie (smtp.mail.ru) ;
  • Propriété SMTPSécurisé(pos.32) - Protocole de cryptage (ssl) ;
  • Propriété Port(pos. 33) - Port du serveur SMTP (465).

Une approche similaire devrait être appliquée à d’autres services de messagerie.

2. En propriété Nom d'utilisateur(pos. 30) il est nécessaire d'indiquer l'adresse complète de la boîte aux lettres du domaine. Dans ce cas, " [email protégé]".

Cependant, si vous utilisez un compte de messagerie hors domaine pour envoyer des lettres, mais une adresse directement liée au service de messagerie, par exemple " [email protégé]", alors le login ne doit être que la partie de l'adresse jusqu'au signe "@". Dans ce cas, le login aurait la valeur "feedback".

3. PHPMailer fournit une propriété SMTPDébogage(pos. 50), qui permet d'afficher différents niveaux d'erreurs sur l'écran du navigateur. Cette fonctionnalité simplifie grandement la recherche de problèmes lors du débogage d'un script.

Généralement, en mode normal, avec la valeur définie sur 0, la sortie d'informations détaillées sur l'erreur est désactivée. Mais si des problèmes surviennent lors de l'envoi du courrier ou lors du débogage, il est possible d'utiliser d'autres valeurs pour afficher des informations plus significatives sur l'erreur.

Afin de voir à quoi cela ressemble dans la pratique, introduisons temporairement une erreur dans les paramètres. Par exemple, dans le mot de passe de messagerie du domaine (propriété Mot de passe, pos.31). Et aussi pour afficher des informations détaillées sur l'erreur, définies temporairement dans la propriété SMTPDébogage(pos.50) valeur 1. Après, lorsque tout sera débogué et vérifié, nous désactiverons le mode de débogage SMTP, en remplaçant 1 par 0.

Dans la dernière partie du script, après avoir spécifié toutes les propriétés et méthodes nécessaires, la méthode est utilisée pour envoyer la lettre envoyer()) (pos. 51). Et si la lettre est envoyée, et la méthode envoyer() pour objet $mail renvoie vrai, puis dans la boîte de dialogue du navigateur via la variable $alerte Un message concernant l'envoi réussi du courrier s'affichera (pos. 52).

Si, pour une raison quelconque, le courrier n'a pas pu être envoyé et, par conséquent, la méthode n'a pas pu renvoyer vrai, alors cet état sera accompagné d'un message d'erreur correspondant (pos. 55).

Vérification de l'envoi d'e-mails

Après avoir créé un script pour envoyer du courrier, nous devons naturellement examiner le résultat de notre « créativité ». Avons-nous tout pris en compte ici et n’avons-nous commis aucune erreur ?

Pour ce faire, essayons, comme prévu, d'envoyer un message de l'utilisateur à l'administrateur du site à partir du formulaire de commentaires. Vous trouverez ci-dessous une capture d'écran du formulaire de commentaires avec les champs remplis avant son envoi.

Et voici le résultat de la soumission du formulaire.

Où, d'après le message dans la boîte de dialogue du navigateur, il ressort clairement que la lettre ne peut pas être envoyée en raison d'un problème avec la connexion SMTP.

Mais puisque désormais la propriété SMTPDébogage(pos. 50) reçoit la valeur 1, nous pouvons alors voir des informations détaillées sur l'erreur qui s'est produite et découvrir la raison de son apparition.

La capture d'écran suivante montre que lors de la tentative de connexion, une erreur d'authentification a été détectée, c'est-à-dire l'utilisation d'un identifiant ou d'un mot de passe incorrect.

Après avoir éliminé l'incompatibilité du mot de passe (auparavant, un mot de passe incorrect était utilisé pour pouvoir vérifier la sortie d'informations supplémentaires sur l'erreur), nous essaierons d'envoyer à nouveau le courrier.

Cette fois, tout a semblé bien se passer et nous avons reçu un message indiquant que le courrier avait été envoyé avec succès. Apparemment, à l'exception de l'erreur temporaire délibérément introduite dans le mot de passe de messagerie du domaine, nous n'avons commis aucune autre erreur.

Mais afin de nous assurer que la lettre a bien été remise au destinataire, saisissons le courrier avec l'adresse [email protégé] et regardez le résultat.

Comme vous pouvez le voir, la lettre de l'adresse [email protégé], à partir duquel nous avons envoyé un e-mail portant le nom "Commentaires" parvenu avec succès à l'administrateur du site. Dans le même temps, le corps de la lettre contient tout le contenu que nous avons généré dans le script à partir des données reçues du formulaire de commentaires, à savoir :

  • Nom de l'expéditeur : Nikolaï ;
  • Adresse de l'expéditeur : [email protégé];
  • Objet du message : Vérification de l'envoi du courrier ;
  • Contenu du message : Message de test.

Désormais, après avoir vérifié avec succès l'envoi du courrier, vous pouvez désactiver le mode de débogage SMTP en attribuant la propriété SMTPDébogage(pos.50) valeur 0.

Ainsi, nous avons réalisé la tâche de créer un outil d'envoi de courrier via SMTP avec autorisation utilisant un serveur de messagerie tiers.

Par exemple, dans le prochain article, nous verrons comment envoyer des e-mails de confirmation pour récupérer les données du compte utilisateur enregistré.

Fichiers sources du site

Les fichiers sources du site avec les mises à jour effectuées dans cet article peuvent être téléchargés à partir des documents supplémentaires ci-joints :

  • fichiers du répertoire www
  • Tables de base de données MySQL

En PHP, il est très courant d'utiliser des scripts qui automatisent le processus d'envoi de lettres. Dans cet article, nous examinerons un script simple qui envoie des lettres aux destinataires via SMTP ( Protocole de transfert de courrier simple ). Il serait trop facile de se limiter à cette fonctionnalité uniquement ; le script prend également en charge les pièces jointes, c'est-à-dire que vous pouvez joindre un fichier pdf, txt ou doc ​​à votre lettre.

La configuration du script est assez simple : tout ce dont vous avez besoin est le login et le mot de passe de l'expéditeur pour l'e-mail à partir duquel les lettres seront envoyées.

Le script fonctionne avec la classe km_smtp_class.php, l'avantage de la classe est qu'elle prend en charge divers protocoles SSL et TLS qui assurent un transfert de données sécurisé.

Voici le script lui-même :

"smtp.mail.ru", "SMTP_port" => "25", "SMTP_email" => " [email protégé]", "SMTP_pass" => "1111111", "SMTP_type" => "null"); // Email du destinataire $Receiver = " [email protégé]"; // Sujet du message $Subject = "Envoi d'un email depuis PHP"; // Texte du message (en HTML) $Text = "Bonjour !
Message envoyé depuis le script Mowshon Site Web : http://site"; // Pièce jointe dans la lettre - l'adresse du fichier $Attachment = ""; /* $mail = new KM_Mailer(server, port, user, password, type); */ /* Le type peut être : null, tls ou ssl */ $mail = new KM_Mailer($SenderConfig["SMTP_server"], $SenderConfig["SMTP_port"], $SenderConfig["SMTP_email"], $SenderConfig["SMTP_pass"], $ SenderConfig[" SMTP_type"]); if($mail->isLogin) ( // Joindre un fichier if($Attachment) ($mail->addAttachment($Attachment);) // Ajouter plus de destinataires $mail->addRecipient( " [email protégé]"); $mail->addRecipient(" [email protégé]"); /* $mail->send(De, Pour, Objet, Texte, Objet = facultatif) */ $SendMail = $mail->send($SenderConfig["SMTP_email"], $Receiver, $Subject, $Text ); // Effacer la liste des destinataires $mail->clearRecipients(); $mail->clearBCC(); $mail->clearAttachments(); echo "Une erreur s'est produite lors de la connexion au serveur SMTP"; ) ?>

La configuration du script est basée principalement sur le tableau $SenderConfig, ici nous devons spécifier le SMTP : serveur, port, login et mot de passe email. Décrivons chaque clé du tableau :

SMTP_server - Adresse du serveur SMTP (adresse individuelle pour différents e-mails)

Courrier Mail.ru : Port smtp.mail.ru : 25, 587 et 465 (avec cryptage SSL)

Courrier Yandex : Port smtp.yandex.ru : 25 587 465 (port SSL)

Courrier du randonneur : Port mail.rambler.ru : 25 587 465 (port SSL)

Yahoo Mail: Port SSL smtp.mail.yahoo.com : 465

(Si vous avez besoin de l'adresse des serveurs smtp qui ne figurent pas dans la liste, écrivez dans les commentaires)

SMTP_port - Nous l'avons déjà décrit ci-dessus pour chaque serveur smtp.

SMTP_email - l'utilisateur serait plus précis, mais pour plus de clarté j'ai écrit un e-mail, nous indiquons l'adresse e-mail.

SMTP_pass - Mot de passe pour l'e-mail spécifié comme valeur dans la clé SMTP_email


SMTP_type - NULL par défaut. Le protocole par lequel les lettres seront envoyées. Protocoles : SSL et TLS

Vous pouvez ajouter des pièces jointes à une lettre en spécifiant simplement l'adresse complète du fichier dans la variable $Attachment (/var/patch/to/file/File.pdf)

Si vous avez des questions, écrivez-les dans les commentaires ci-dessous.

L'envoi de messages anonymes depuis des serveurs d'hébergement virtuels Windows étant interdit, l'envoi de courriers doit se faire via un serveur SMTP, pour lequel il est également possible d'utiliser notre système de messagerie.

Comment envoyer des emails en utilisant PHP ?

Utiliser n'importe quelle classe PHP prenant en charge l'autorisation sur le serveur SMTP. Par exemple, vous pouvez utiliser l'ensemble de classes PHPMailer.

Vous pouvez également utiliser notre exemple, qui implémente l'envoi de lettres via un serveur SMTP, qui nécessite une autorisation. Par conséquent, n'oubliez pas d'ajouter les détails d'accès appropriés au script, par exemple :

// Si vous devez afficher le journal de la session SMTP, vous pouvez décommenter la ligne suivante. // $_SERVER["debug"] = vrai ; fonction MailSmtp ($reciever, $subject, $content, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // Adresse du serveur SMTP$smtp_port = 25 ; //Port du serveur SMTP$utilisateur_smtp = " [email protégé]" ; // Nom d'utilisateur pour l'autorisation sur le serveur SMTP$smtp_password = "pAsSwORd" ; // Mot de passe d'autorisation sur le serveur SMTP$mail_from = " [email protégé]" ; // Boîte aux lettres à partir de laquelle la lettre est envoyée$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30) ; $str = fgets ($chaussette, 512) ;<" . $mail_from . ">if (! $sock ) ( printf ( "Le socket n'est pas créé\n" ); exit(1 ); ) smtp_msg ($sock , "HELO " . $_SERVER [ "SERVER_NAME" ]); smtp_msg($sock, "CONNEXION AUTHIQUE"); smtp_msg ($sock, base64_encode ($smtp_user)); smtp_msg ($sock, base64_encode ($smtp_password)); smtp_msg ($sock , "MAIL DE :<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Sujet : " . $subject . "\r\n" . $headers ; $data = $headers . "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock , $data ) ( printf ("Socket cassé !\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Envoyer de notre part : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Le socket est down\n" ); exit(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Obtenu du serveur : %s
" , nl2br (htmlspecialchars ($str )); ) $e = exploser (" " , $str ); $code = array_shift ($e ); $str = imploser (" " , $e ); if ($code > 499 ) ( printf ( "Problèmes avec la conversation SMTP.

Code %d.
Message %s
"
, $code , $str );

sortie(1);

) ) ) ?>

Téléchargez un exemple de script prêt à l'emploi avec la fonction MailSmtp() : smtpauth.php.sample Vous pouvez utiliser la fonction MailSmtp() décrite ci-dessus pour remplacer directement la fonction mail() ; prenons un exemple de la forme la plus simple en PHP : // En-têtes de message, ils définissent l'encodage du message, les champs De, À, etc.$headers = "Version MIME : 1.0\r\n" ; $en-têtes .= "Type de contenu : texte/html ; charset=windows-1251\r\n" " ; ; $headers .= "À : $à \r\n" ; $en-têtes .="De : Nom de l'expéditeur
// mail ($à, $sujet, $message, $en-têtes); require_once "smtpauth.php" ;  MailSmtp ($à, $sujet, $message, $en-têtes) ;  ) ?> A qui : 
 
 

Texte:

Envoyer!

Pour que ce formulaire fonctionne sans la fonction mail(), nous avons inclus le fichier smtpauth.php via require_once et appelé la fonction MailSmtp() qui y est décrite avec des arguments similaires à mail(). En parallèle, nous avons commenté l'appel mail() lui-même dans le code pour éviter les erreurs lors de l'exécution du script. Comment envoyer des e-mails en utilisant ASP.NET ? Si vous utilisez la version 2.0, utilisez la classe MailMessage

Système.Net.Mail

), bien décrit.

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); Vous trouverez ci-dessous des exemples de son utilisation pour les langages C# et VisualBasic : Exemple pour le langage C# : [email protégé]"); // création d'une nouvelle lettre message.À.Ajouter(" // ajout de l'adresse du destinataire message.From = new MailAddress("de@ domaine.tld", "Nom_expéditeur"); // précisant le nom et l'adresse de l'expéditeur message.Sujet = "Sujet du message"; // précisant le sujet de la lettre message.BodyEncoding = System.Text.Encoding.UTF8; // spécifiant l'encodage des lettres message.Body = "Texte du message"; // précisant le texte (corps) de la lettre Client SmtpClient = new SmtpClient("smtp.site",25); // création d'une nouvelle connexion au serveur "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // définit la méthode d'envoi des messages client.EnableSsl = false; // désactive la nécessité d'utiliser une connexion sécurisée au serveur client.UseDefaultCredentials = false; // désactive l'utilisation des détails d'autorisation par défaut client.Credentials = new NetworkCredential("postmaster@ // ajout de l'adresse du destinataire", "***mot de passe***"); // précisant les détails nécessaires (nom d'utilisateur et mot de passe) pour l'autorisation sur le serveur SMTP client.Send(message); // envoie un message %>

Téléchargez un exemple de formulaire terminé démontrant l'utilisation de cette méthode : MailForm.aspx.

Exemple pour le langage VisualBasic :

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% Dim smtpMssg AS new MailMessage smtpMssg.From = New MailAddress ("admin@// ajout de l'adresse du destinataire", "Nom_de l'expéditeur") smtpMssg.To.Add (" [email protégé]") " ajout de l'adresse du destinataire smtpMssg.Subject = "Objet de l'e-mail" "indication de l'objet de la lettre smtpMssg.Body = "Texte du message" " indication du texte (corps) de la lettre smtpMssg.BodyEncoding = Système.Text.Encoding.UTF8 " indication de l'encodage des lettres smtpMssg.IsBodyHtml = faux " indication du format de la lettre (vrai - HTML, faux - pas HTML) Atténuer SmtpMail en tant que nouveau SmtpClient("smtp.site", 25) " déclaration d'un nouvel objet de type "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "indication du mode de livraison de la lettre SmtpMail.UseDefaultCredentials = False "désactiver l'utilisation des informations d'autorisation par défaut" SmtpMail.EnableSsl = Faux " désactive la nécessité d'utiliser une connexion sécurisée au serveur SmtpMail.Credentials = new NetworkCredential("postmaster@ // ajout de l'adresse du destinataire", "***mot de passe***") "indiquant les détails nécessaires (nom d'utilisateur et mot de passe) pour l'autorisation sur le serveur SMTP SmtpMail.Send(smtpMssg) "envoyer un message %>

Il existe également une classe SmtpMail obsolète (et obsolète) (utilisant l'espace de noms Système.Web.Mail). Ci-dessous un exemple de son utilisation pour le langage VisualBasic :

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " déclaration d'un nouvel objet de type "MailMessage" smtpMssg.From = "Nom_expéditeur // ajout de l'adresse du destinataire>" "Indication du nom et de l'adresse de l'expéditeur smtpMssg.To = "admin@ // ajout de l'adresse du destinataire" " indication de l'adresse du destinataire smtpMssg.BodyFormat = MailFormat.Text " indication du format de la lettre smtpMssg.BodyEncoding = Encodage.UTF8 "indiquant le codage des lettres smtpMssg.Subject = "Objet de l'e-mail" "indication de l'objet de la lettre smtpMssg.Body = "Texte du message" "indication du texte de la lettre smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "indiquant la nécessité d'une autorisation SMTP sur le serveur smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ // ajout de l'adresse du destinataire") "nom d'utilisateur pour l'autorisation smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***password***") "mot de passe pour l'autorisation SmtpMail.SmtpServer = "smtp.site" " en précisant l'adresse du serveur SMTP SmtpMail.Send(smtpMssg) "envoyer un message %>

Comment envoyer des emails en utilisant ASP ?

Veuillez noter que lors de l'utilisation de notre serveur smtp, une autorisation est requise, alors n'oubliez pas d'ajouter les détails d'accès appropriés au script, par exemple :

<% iConfig = Server.CreateObject("CDO.Configuration") Set iConfig = Server.CreateObject("CDO.Configuration") With iConfig.Fields .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.сайт" .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/languagecode") = "ru" .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "postmaster@// ajout de l'adresse du destinataire" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mot de passe" .La mise à jour se termine par Set cdoMessage = CreateObject("CDO.Message") Avec cdoMessage Set .Configuration = iConfig .From = "Tester l'utilisateur // ajout de l'adresse du destinataire>" .À = "Utilisateur " .Subject = "Bonjour, utilisateur" .TextBody = "J'écris ce message à partir d'un script ASP." .Send End With Set cdoMessage = Nothing Set iConfig = Nothing %>

Certains CMS disposent déjà d’outils intégrés d’envoi de correspondance ou de modules correspondants ; regardons les plus populaires.

WordPress

Pour ce CMS il existe un module spécial « WP Mail SMTP », un exemple de sa configuration est décrit sur la page du module.

Faites attention à l'illustration de l'exemple : dans notre système de messagerie, il est nécessaire d'utiliser le port 25 et le cryptage SSL n'est pas requis.

Joomla

Dans le panneau d'administration, allez dans la section « Paramètres généraux », sélectionnez l'onglet « Serveur ». Dans le champ « Mail », vous devez sélectionner la méthode d'envoi comme « Serveur SMTP », dans les champs « Adresse du serveur SMTP » et « Connexion SMTP » et « Mot de passe SMTP » spécifier les détails appropriés du système de messagerie, par exemple : smtp.site, box@votre_domaine et correspondant mot de passe.

Drupal

Ce CMS possède également son propre module pour travailler avec un serveur SMTP, basé sur le PHPMailer. Vous pouvez télécharger ce module sur sa page du site du CMS Drupal ; une description de l'installation du module est disponible dans l'archive qui l'accompagne.

NetCat

Ce CMS n'a pas de fonctions intégrées pour travailler avec un serveur SMTP. Pour envoyer du courrier à l'aide des scripts du site, nous pouvons vous proposer d'utiliser notre solution ; pour la connecter, vous devez effectuer les étapes suivantes :

  • Téléchargez une archive avec les fichiers nécessaires depuis notre site Web ( send_auth_mail.php Et mail.inc.php) et décompressez-le sur votre ordinateur ;
  • Modifier le fichier send_auth_mail.phpà partir de l'archive, en y indiquant les détails de la connexion au serveur SMTP souhaité :

    • $mail_smtpServeur = "smtp.site"; (adresse du serveur SMTP)
    • $mail_port = "25" ; (port de connexion)
    • $mail_nom d'utilisateur = "[email protégé]" ; (nom d'utilisateur pour l'autorisation sur le serveur SMTP)
    • $mail_mot de passe = "Mot de passe"; (mot de passe pour l'autorisation sur le serveur SMTP)
  • Créer une copie de sauvegarde du fichier domaine.tld/www/netcat/admin/mail.inc.php;
  • Télécharger des fichiers send_auth_mail.php Et mail.inc.php vers le site virtuel dans l'annuaire domaine.tld/www/netcat/admin/

// ajout de l'adresse du destinataire doit être remplacé par votre nom de domaine.

La solution proposée fonctionne avec tous les modules NetCat qui utilisent les fonctions standards de ce CMS pour envoyer du mail.

© 2024 ermake.ru -- À propos de la réparation de PC - Portail d'information