Envoi d'emails via smtp avec autorisation php. Envoi de mail via SMTP en PHP. Envoi de courrier php via la configuration du script SMTP

Courrier PHP

Cette fonction est implémentée par défaut comme l'envoi d'Email. Cette fonctionnalité ne nécessite pas de serveur tiers pour transférer les e-mails. Afin de vérifier l'exactitude de cette fonction, créez simplement un fichier test.php dans le dossier avec le site et placez-y le code suivant :

Où à la place "E-MAILDESTINATAIRE" Entrez l'e-mail auquel la lettre doit être envoyée.

Lieu ce fichierà la racine de votre site.

Ensuite, saisissez www.YourDomain/test.php dans la barre d'adresse. Si une lettre est reçue à l'e-mail spécifié, alors votre hébergement fonctionne correctement avec la fonction d'envoi de lettres " Courrier PHP". Il est possible que la lettre se soit retrouvée dans le spam, elle doit donc également être vérifiée.

Si la lettre est arrivée dans un codage incompréhensible, modifiez la ligne : "Vérification de l'envoi du courrier" sur "Vérification de l'envoi du courrier", "Content-type:text/html;charset=utf-8".

Et répétez l'envoi de la lettre via la barre d'adresse de votre navigateur.

Si après les manipulations ci-dessus la lettre test ne parvient pas au destinataire final, vous devez contacter le support technique de votre hébergeur.

Parmi les lacunes cette méthode Il est à noter que les travaux ne sont pas permanents cette méthode. Il peut y avoir des interruptions dans l’envoi des emails du côté de l’hébergement.

Le principal inconvénient de cette méthode est que toutes les lettres envoyées aux e-mails des clients ne seront pas reconnues par les services de messagerie (gmail, mail.ru, yandex.ru) car elles ont été envoyées directement depuis votre site Web.

Le service de messagerie Gmail affiche ces lettres avec un point d'interrogation et la signature : "Le système Gmail n'a pas pu confirmer que cette lettre a été envoyée depuis le domaine VotreDomaine. Il s'agit peut-être d'un spam."

Pour éviter cette situation .

SMTP (protocole de transfert de courrier simple)

SMTP - protocole de transfert de courrier. Au total, pour configurer la transmission du courrier à l'aide de ce protocole, vous avez besoin du serveur SMTP lui-même. L'option la plus courante pour utiliser le courrier d'entreprise (domaine) yandex.ru en tant que serveur SMTP est https://pdd.yandex.ru/.

Il faut avant tout compte (mail) Yandex, sur la base duquel des e-mails seront créés pour votre domaine : « commande@VotreDomaine » « info@VotreDomaine »... Le compte principal ne sera visible nulle part et est utilisé uniquement pour créer des e-mails de domaine basés sur celui-ci à l'avenir.

Après vous être connecté à votre compte personnel Le courrier du domaine Yandex est créé à l'aide du lien https://pdd.yandex.ru/. Il s'agit de l'adresse e-mail du domaine que les utilisateurs verront dans le champ « Expéditeur ».

Le champ "Expéditeur" est obligatoire lors de l'envoi d'emails via SMTP. Utiliser SMTP pour envoyer des lettres, une combinaison de " Domaine" - "E-mail", les lettres sont ainsi reconnues par les services postaux.


Parmi les inconvénients de cette méthode, il convient de noter l'impossibilité de « charger » un portrait de messagerie de domaine, puisque les services de messagerie eux-mêmes ne proposent pas encore cette fonctionnalité.

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 des e-mails 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 assez simplement l'envoi de lettres 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 du 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 serveur de courrier 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 à Boites 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 = "Email du contact" nom = "Email du contact" 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 formulaire requis créé. 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.

En plus, 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(); //Initialisation de 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

    L'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 autre qu'un compte de messagerie de 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 en 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 saisie 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, entrons 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 "Feedback" 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ï ;
  • L'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

L'envoi de mail via SMTP depuis un serveur local permet de tester l'envoi de messages depuis un site situé sur une machine locale, ou plus simplement, un serveur local. Pour ce faire, vous pouvez utiliser n'importe quel service de messagerie Yandex, Google ou mail.ru.

Tout d'abord, SMTP (Simple Mail Transfer Protocol) est un protocole réseau largement utilisé conçu pour transmettre des e-mails sur les réseaux TCP/IP. Et tous les services de messagerie populaires disposent de tels protocoles.

Avec l'avènement des serveurs locaux, il n'était plus nécessaire de choisir un fournisseur d'hébergement pour vérifier les performances de scripts individuels ou de systèmes cms, et encore moins de payer pour cela. Il est beaucoup plus facile de tout tester sur un ordinateur, et vous pouvez ensuite montrer à tout le monde ce que vous avez « fait ».

Beaucoup de ces serveurs disposent déjà d'un logiciel intégré et des fonctionnalités nécessaires pour travailler avec le courrier, il vous suffit de le configurer correctement.

Pour vérifier la fonctionnalité d'un tel courrier, le strict minimum est requis :

  • Vous pouvez utiliser Openserver comme serveur local.
  • Et un script simple, dont le modèle se trouve juste en dessous.
  • Vous pouvez utiliser n'importe quel serveur de messagerie.

Envoi de courrier php via la configuration du script SMTP

Un modèle de script simple qui peut être copié ci-dessous ou téléchargé à partir de centaines de sites similaires doit être modifié.

Tout d'abord, vous devez modifier certaines valeurs dans le modèle de script.
à — changement de l'adresse postale à laquelle le message électronique sera envoyé.
sujet - sujet de la lettre
message — le message lui-même, ou le corps de la lettre.

Exemple de mon script :

Vous pouvez bien sûr étendre un peu la fonctionnalité et faire en sorte que le script affiche un message concernant l'envoi de courrier. Bien qu'en fait c'est le serveur SMTP qui effectue l'envoi, et le script génère uniquement le message.

Par exemple, vous pouvez écrire ceci :

Toutes les valeurs substituées doivent être entre guillemets, sinon le script générera une erreur. Après cela, vous pouvez enregistrer le script dans le dossier du serveur local.

Par exemple: domaines/envoyer/index.php et commencez à configurer l'envoi de courrier via SMTP opensrerver.

Le courrier arrivera à n'importe quelle adresse qui sera spécifiée dans le script au lieu de la valeur 'à' , mais ce courrier sera traité et envoyé exactement par le SMTP qui sera spécifié dans les paramètres d'openserver.

  1. Démarrage du serveur
  2. Ouvrez le module openserver avec les paramètres dans le menu « mail »
  3. Nous remplissons tous les champs comme indiqué sur l'image, tout en remplaçant le nom d'utilisateur, l'e-mail de l'expéditeur et le mot de passe d'une vraie boîte aux lettres Yandex.

Nous enregistrons les paramètres et après le redémarrage du serveur, vous pouvez accéder au script lui-même. Depuis le dossier « Mes sites », ouvrez le dossier « envoyer » dans lequel se trouve le script index.php précédemment enregistré.

Dès l'accès à ce script, des informations apparaîtront dans une nouvelle fenêtre de navigateur indiquant que le script est terminé.

Après cela, vous devez vérifier votre boîte aux lettres, dont l'adresse a été indiquée dans le script, pour voir si la lettre est arrivée.

Si ce n'est pas le cas, cela signifie que quelque chose n'est pas configuré correctement ou que la lettre s'est retrouvée dans le dossier spam.

Tous les autres paramètres semblent similaires, mais juste au cas où, des informations supplémentaires ne feraient pas de mal.

Afin de configurer l'envoi de courrier via SMTP mail ru, il vous suffit de remplacer les paramètres Yandex par les paramètres mail ru.

Et pour ne pas reconstruire le serveur local à chaque fois, il est préférable de configurer différents profils openserver. Comment procéder est montré dans le didacticiel vidéo.

Dans ce cas, il suffira simplement de charger le profil et tous les paramètres qui ont été précisés pour ce profil seront disponibles après redémarrage du serveur. C'est une chose très pratique et fonctionne très simplement.

Pour chaque profil (peu importe comment il s'appellera), ses propres paramètres doivent être définis, à moins bien sûr que vous envisagiez d'utiliser des scripts, des systèmes cms et des applications avec des paramètres différents.
Sinon, vous pouvez vous débrouiller avec les paramètres par défaut.

Quant au courrier SMTP ru, tout est identique ici.

Les données Yandex sont remplacées par des données mail ru

Envoi de mail via smtp google

Afin de configurer l'envoi de courrier via Google SMTP, cela demande un petit effort.

Premièrement, créer un profil dans Google est plus difficile que dans d'autres systèmes Yandex et mail ru
Deuxièmement, le système ne laissera pas simplement passer la lettre, même si vous fournissez vos informations de connexion. Pour commencer, elle enverra une lettre contenant toutes les informations nécessaires sur des instructions supplémentaires.

Sinon Pour Google, la configuration est exactement la même. Seules toutes les données changent.

Pour configurer l'envoi de courrier via un autre SMTP, toutes les données seront à peu près les mêmes.

Si tout s'est bien passé pour vous et que les lettres sont parvenues au destinataire spécifié, alors tout a été fait correctement. Ce serait formidable si vous partagiez vos expériences dans les commentaires.

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.

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$smtp_user = " [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) ; 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 :<" . $mail_from . ">" ); smtp_msg ($sock, "RCPT TO :<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Sujet : " . $subject . "\r\n" . $headers ; $data = $headers . "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock , $data ); smtp_msg ($sock , "QUIT" ); fclose ($sock ); ) fonction smtp_msg ($sock , $msg ) ( si ( ! $sock ) ( 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.
Messages
"
, $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) ; ) ?>
À qui: Sujet: Texte: 
 
 

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.

Vous trouverez ci-dessous des exemples de son utilisation pour les langages C# et VisualBasic :

Exemple pour le langage C# :

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // création d'une nouvelle lettre message.À.Ajouter(" [email protégé]"); // ajout de l'adresse du destinataire message.From = new MailAddress("de@ domaine.tld", "Nom de l'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.IsBodyHtml = false; // spécifiant le format de la lettre (true - HTML, false - pas HTML) 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@ domaine.tld", "***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); // envoyer le 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@domaine.tld", "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@ domaine.tld", "***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 domaine.tld>" "Indication du nom et de l'adresse de l'expéditeur smtpMssg.To = "admin@ domaine.tld" "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@ domaine.tld") "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@domaine.tld" .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 domaine.tld>" .À = "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écifiez 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;
  • Telecharger des fichiers send_auth_mail.php Et mail.inc.php vers le site virtuel dans l'annuaire domaine.tld/www/netcat/admin/

domaine.tld 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.




Haut