2 votes

Nodemailer avec MainGun

J'essaie d'envoyer des courriels lorsqu'un utilisateur s'inscrit sur mon site. J'ai opté pour Nodemailer et MailGun et je me suis rendu compte qu'il n'y a pas beaucoup de tutoriels ou de bonnes documentations sur leur fonctionnement conjoint. Il semble que ce soit un problème similaire pour le reste des services comme MailGun. Vous trouverez ci-dessous mon code pour tenter de le faire fonctionner. J'ai regardé un tutoriel sur la façon de le faire fonctionner mais je n'arrive pas à le comprendre. Je pense que le code est correct mais peut-être que l'authentification est mauvaise ? Ou je pourrais me tromper sur les deux. J'utilise cloud9.io pour mon environnement de développement, c'est peut-être la cause du problème ? Ou que mon domaine n'est pas encore vérifié ?

Route :

app.post('/signup',
    setRedirect({auth: '/dashboard', success: '/dashboard', failure: '/signup'}),
    isUnauthenticated,
    registrations.postSignup,
    (req, res) =>{
      const output = `
        <h1>Your email is: ${req.body.email}</h1>
         `;

      // create reusable transporter object using the default SMTP transport
      let transporter = nodemailer.createTransport({
        host: 'postmaster@MYSUBDOMAIN',
        port: 587,
        secure: false, // true for 465, false for other ports
        auth: {
            user: 'postmaster@MYSUBDOMAIN', // generated ethereal user
            pass: 'MYPASSWORD'  // generated ethereal password
        },
        tls:{
          rejectUnauthorized:false
        }
      });

      // setup email data with unicode symbols
      let mailOptions = {
          from: '"Nodemailer Contact" <your@email.com>', // sender address
          to: '`${req.body.email}`', // list of receivers
          subject: 'Node Contact Request', // Subject line
          text: 'Hello world?', // plain text body
          html: output // html body
      };

      // send mail with defined transport object
      transporter.sendMail(mailOptions, (error, info) => {
          if (error) {
              return console.log(error);
          }
          console.log('Message sent: %s', info.messageId);   
          console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));

          // render view here and pass in data/message
      });
    });

Puis les informations sur le domaine de mailgun.com :

State
Unverified
IP Address
IPASSIGNED Manage IPs
SMTP Hostname
smtp.mailgun.org
Default SMTP Login
postmaster@MYSUBDOMAIN
API Base URL
https://api.mailgun.net/v3/MYSUBDOMAIN
Default Password
MYPASSWORD SMTP credentials
API Key
MYKEY

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X