Nodemailer envoie de mail

Par eckop, il y a 4 ans


Javascript VueJS

Bonjour,

J'ai un problème lors de l'envoie de mail, je débute dans nuxtjs et le problème est que le mail s'envoie a chaque chargement de page

<script> import nodemailer from "nodemailer"; var transporter = nodemailer.createTransport({ host: "serveur", port: 587, auth: { user: "user", pass: "mdp", }, }); const mailOptions = { from: "user", to: "user", subject: "hello", html: "<h1>Recrutement</h1><p>Voici le texte dans un paragraph pour l'email de test</p>", }; await transporter.sendMail(mailOptions); </script>

Ce que je veux

Quand on clique sur Envoyer, il envoie le mail

Ce que j'obtiens

A chaque chargement de page il envoie un mail!

5 réponses

eckop, il y a 4 ans

util.js:109 Uncaught TypeError: Cannot read properties of undefined (reading 'NODE_DEBUG')
at node_modules/util/util.js (util.js:109:17)
at require2 (chunk-SB6M622P.js?v=42b18667:30:50)
at node_modules/nodemailer/lib/shared/index.js (index.js:6:14)
at __require2 (chunk-SB6M622P.js?v=42b18667:30:50)
at node_modules/nodemailer/lib/mailer/index.js (index.js:4:16)
at
require2 (chunk-SB6M622P.js?v=42b18667:30:50)
at node_modules/nodemailer/lib/nodemailer.js (nodemailer.js:3:16)
at __require2 (chunk-SB6M622P.js?v=42b18667:30:50)
at dep:nodemailer:1:16

j'ai ca en message d'erreur

gillesr, il y a 4 ans

Bonsoir,
as-tu essayé de mettre ton envoi de mail dans une fonction et d’appeler ta fonction avec un @click sur ton bouton ?

eckop, il y a 4 ans
<template> <form class="grid grid-flow-col grid-rows-1 grid-cols-1 md:grid-rows-1 md:grid-cols-2" name="recrutement" > <p class="block w-2/4 col-start-1"> <label for="nom" class="font-bold px-auto">Nom</label> <input type="text" name="nom" class="border border-pink-200 my-2 w-2/4" /> </p> <p class="col-start-2"> <label for="prenom" class="font-bold">Prénom</label> <input type="text" name="prenom" class="border border-pink-200 my-2" /> </p> <p class="col-start-1"> <label for="tel" class="font-bold">Téléphone</label> <input type="text" name="tel" class="border border-pink-200 my-2" /> </p> <p class="col-start-2"> <label for="mail" class="font-bold">Mail</label> <input type="text" name="mail" class="border border-pink-200 my-2" /> </p> <p class="col-start-1"> <label for="cv" class="font-bold">CV</label> <input type="text" name="cv" class="border border-pink-200 my-2" /> </p> <p class="col-start-2"> <label for="lettremotivation" class="font-bold" >Lettre de motivation</label > <input type="text" name="lettremotivation" class="border border-pink-200 my-2" /> </p> <button type="submit" @click.prevent="sendMail" class="font-bold col-span-2 col-start-1" > Envoyer </button> </form> </template> <script> import nodemailer from "nodemailer"; function sendMail() { var transporter = nodemailer.createTransport({ host: "server", port: 587, auth: { user: "user", pass: "pass", }, }); var mailOptions = { from: "user", to: "user", subject: "hello", html: "<h1>Recrutement</h1><p>Voici le texte dans un paragraph pour l'email de test</p>", }; transporter.sendMail(mailOptions, function (error, info) { if (error) { console.log("sendmail" + error); } else { console.log("Email sent: " + info.response); } }); } </script>

Ca ne fonctionne toujours pas ...

popotte, il y a 4 ans

Hello, tu as un message d'erreur dans la console?

popotte, il y a 4 ans

Mmmmh okay tu peux entourer la creation du transporter avec des console.log et pareil pour chaque étape du js pour voir à quel moment cette erreur tombe, apparemment il manque un paramètre :/