Fermer

mars 13, 2024

Implémentation de la fonctionnalité de messagerie avec Nodemailer dans Node.js / Blogs / Perficient

Implémentation de la fonctionnalité de messagerie avec Nodemailer dans Node.js / Blogs / Perficient


Dans le paysage numérique contemporain, la transmission automatisée d’e-mails est devenue un aspect essentiel du développement d’applications Web. Qu’il s’agisse d’envoyer des notifications, de distribuer des newsletters ou d’exécuter des réinitialisations de mots de passe, l’intégration de la fonctionnalité de messagerie dans les applications Node.js revêt une importance capitale. Heureusement, Node.js fournit Nodemailer, une bibliothèque efficace qui améliore l’expérience d’envoi d’e-mails. Ce didacticiel explique comment utiliser Nodemailer pour envoyer sans effort des e-mails à partir de votre application Node.js.

Conditions préalables pour Nodemailer

Avant de plonger dans Envoyeur de notes utilisation, assurez-vous que les conditions préalables suivantes sont remplies :

  1. Confirmez l’installation et la configuration correctes de js et npm sur votre système.
  2. Posséder des connaissances fondamentales en JavaScript et Node.js.

Configuration de l’application Node.js

Commencez par créer une application Node.js rudimentaire. Accédez au répertoire de votre projet et respectez les étapes suivantes :

Créez un nouveau répertoire pour votre projet

mkdir nodemailer-démo

cd nodemailer-démo

Initialiser un nouveau projet Node.js

npm init -y

Initialiser un nouveau projet Node.js

Procurez-vous les dépendances requises en exécutant les commandes suivantes :

  1. Installer Express

Express, un framework Web rapide, adaptable et léger conçu pour Noeud.js, fournit une boîte à outils complète pour créer des applications Web et des API. Il englobe des fonctionnalités telles que le routage, l’intégration de middleware et la prise en charge des moteurs de modèles. Dans notre contexte, Express est utilisé pour établir le serveur, délimiter les routes et gérer les requêtes HTTP.

Pour installer Express, exécutez la commande suivante :

npm installer express

  1. Installer l’analyseur de corps

Body-parser, un middleware pour Express.jsextrait l’intégralité du segment de corps d’un flux de requête entrant, l’exposant ainsi sur corps requis. Ce middleware facilite l’analyse des corps de requêtes entrantes avant qu’elles n’atteignent les gestionnaires désignés, les rendant accessibles via le corps requis propriété. Body-parser joue un rôle déterminant dans l’analyse des données de formulaire envoyées via POSTE demandes.

Pour installer Body-parser, utilisez la commande suivante :

npm installer l’analyseur de corps

  1. Installer Nodemailer

Envoyeur de notes, un module Node.js dédié, rationalise le processus d’envoi d’e-mails au sein des applications. Il fournit une API conviviale pour envoyer des e-mails en utilisant divers services et protocoles de messagerie. Envoyeur de notes joue un rôle déterminant dans l’envoi d’e-mails dynamiques à partir des applications Node.js.

Intégrer Envoyeur de notesexécutez la commande suivante :

npm installer nodemailer

Créer et configurer app.js

Créez un fichier nommé app.js dans le répertoire de votre projet. Ce fichier servira de point d’entrée principal pour la candidature. Dans app.jsle serveur Express sera instancié, les itinéraires seront établis et la fonctionnalité d’envoi d’e-mails utilisant Envoyeur de notes sera géré.

Voici un extrait de code illustratif pour app.js :

app.js

const express = require('express');
const nodemailer = require('nodemailer');
const bodyParser = require('body-parser');

const app = express();

// Middleware to parse form data
app.use(bodyParser.urlencoded({ extended: true }));

// Define transporter object using SMTP transport
const transporter = nodemailer.createTransport({
    service: 'Gmail',
    auth: {
        user: 'your-email@gmail.com',
        pass: 'your-password'
    }
});

// Route to serve the HTML form
app.get('/', (req, res) => {
    res.send(`
        <h2>Send Email</h2>
        <form action="/send-email" method="post">
            <label for="recipient">Recipient Email:</label><br>
            <input type="email" id="recipient" name="recipient" required><br><br>

            <label for="subject">Subject:</label><br>
            <input type="text" id="subject" name="subject" required><br><br>

            <label for="content">Email Content:</label><br>
            <textarea id="content" name="content" rows="4" required></textarea><br><br>

            <button type="submit">Send Email</button>
        </form>
    `);
});

// Route to handle form submission
app.post('/send-email', (req, res) => {
    const { recipient, subject, content } = req.body;

    // Define email content
    const mailOptions = {
        from: 'your-email@gmail.com',
        to: recipient,
        subject: subject,
        html: content
    };

    // Send email
    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            console.error('Error occurred:', error.message);
            res.send('Error occurred while sending email.');
        } else {
            console.log('Email sent successfully!');
            res.send('Email sent successfully!');
        }
    });
});

// Start the server
const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

Explication du code app.js

Configuration express : Importez le module Express et instanciez une application Express.

Intergiciel : Utilisez le middleware body-analyser pour analyser les données de formulaire envoyées via POSTE demandes.

Configuration du nœud de courrier : Définissez un objet transporteur utilisant le transport SMTP. Remplaçant ‘votre-email@gmail.com’ et ‘votre mot de passe’ avec vos identifiants de messagerie. Cet objet transporteur facilite l’envoi des emails.

Itinéraires : Définissez deux routes : une pour servir le formulaire HTML (« / ») et une autre pour gérer la soumission du formulaire (« /send-email »). Le formulaire HTML est dispensé lors de la visite de l’URL racine, tandis que la route de soumission du formulaire gère le POSTE demande envoyée lors de la soumission.

Initialisation du serveur : Lancez le serveur Express et écoutez sur un port désigné (3000 par défaut).

Comprendre la méthode `nodemailer.createTransport`

Le nodemailer.createTransport La méthode joue un rôle déterminant dans la création d’un objet transporteur qui spécifie la méthodologie d’envoi d’e-mails. Il accepte un objet d’options, délimitant le service de messagerie, les informations d’authentification et les options de transport supplémentaires.

Dans notre scénario, SMTP le transport est utilisé pour l’envoi d’e-mails via un compte Gmail. Le service Gmail est désigné comme option de service, tandis que l’authentification est exécutée à l’aide du nom d’utilisateur et du mot de passe associés au compte Gmail. L’objet auth englobe le utilisateur (adresse e-mail) et passer Propriétés (mot de passe).

const transporter = nodemailer.createTransport({
    service: 'Gmail',
    auth: {
        user: 'your-email@gmail.com',
        pass: 'your-password'
    }
});

Invocation de nodemailer.createTransport produit un objet transporteur conçu pour l’envoi d’e-mails via le service de messagerie spécifié et les informations d’authentification. Cet objet transporteur est ensuite utilisé pour l’envoi d’emails au sein de notre application.

Remarque sur la résolution de l’erreur « Connexion invalide » : Rencontrer un « Identifiant invalide » L’erreur implique généralement le rejet des informations de connexion par le fournisseur de services de messagerie. Dans de tels cas, générer un mot de passe d’application pour le compte de messagerie et l’utiliser dans le nodemailer.createTransport Cette fonction, au lieu du mot de passe conventionnel, résout généralement le problème de l’authentification.

Exécution de l’application Node.js

Pour exécuter le fichier app.js et démarrer votre application Node.js, exécutez la commande suivante dans votre terminal :

nœud app.js

Cette commande déclenche l’exécution du app.js fichier via Noeud.js, en lançant le serveur Express et en rendant votre application accessible sur le port désigné. Assurez-vous d’exécuter cette commande dans le répertoire racine de votre projet.

Lors de l’exécution, un message indiquant l’état opérationnel du serveur sur le port spécifié, tel que défini dans votre app.js fichier, devrait se manifester. Accédez à votre candidature en visitant http://localhost:3000 via votre navigateur Web.

Sortir

Sortir

Conclusion

Envoyeur de notes apparaît comme une bibliothèque puissante et adaptable, rationalisant le processus d’envoi d’e-mails à partir des applications Node.js. Ce guide a exposé les étapes fondamentales de Envoyeur de notes configuration et envoi d’e-mails à l’aide d’un compte Gmail. Néanmoins, Envoyeur de notes prend en charge divers services de messagerie et propose diverses fonctionnalités avancées, englobant le contenu HTML, les pièces jointes, etc. J’encourage à se plonger dans le fonctionnaire.






Source link