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!
Bonsoir,
as-tu essayé de mettre ton envoi de mail dans une fonction et d’appeler ta fonction avec un @click sur ton bouton ?
<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 ...
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
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 :/