Envoi d'emails avec nodemailer

J'essaie d'envoyer des courriels de ma application en utilisant nodemailer.

Mon installation ressemble à ceci:

var nodemailer = require('nodemailer'); var smtpTransport = require('nodemailer-smtp-transport'); var transporter = nodemailer.createTransport(smtpTransport ({ host: 'smtp.companyname.dk', secureConnection: true, port: 587, auth: { user: '[email protected]', pass: '****' } })); var mailOptions = { from: 'Olaf <[email protected]>', to: '[email protected]', subject: 'This is a test ', text: 'Hello world ', html: '<b>Hello world </b>' }; transporter.sendMail(mailOptions, function(error, info){ if(error){ console.log(error); }else{ console.log('Message sent: ' + info.response); } }); 

Après avoir exécuté ceci, il me donne l'erreur suivante:

 { [Error: Hostname/IP doesn't match certificate's altnames: "Host: smtp.companyname.dk. is not in the cert's altnames: DNS:*.mailcloud.dk, DNS:mailcloud.dk"] reason: 'Host: smtp.companyname.dk. is not in the cert\'s altnames: DNS:*.mailcloud.dk, DNS:mailcloud.dk', host: 'smtp.companyname.dk.', cert: { subject: { OU: 'Domain Control Validated', CN: '*.mailcloud.dk' }, issuer: { O: 'AlphaSSL', CN: 'AlphaSSL CA - G2' }, subjectaltname: 'DNS:*.mailcloud.dk, DNS:mailcloud.dk', infoAccess: { 'CA Issuers - URI': [Object], 'OCSP - URI': [Object] }, modulus: 'AFFDE405E26382FC1F9A126B51C763A21DCB90228DF9B9BFF466B00DA17BCBDA48E0315E0A6E4E8E0C65B3E5A9BF9A98448DF8006869B913C8D644B78B2176C240AA703DF7C5109F7FC9EDBAE0A69E35E00A81D753990A7DF531CC1F47A778A1CC18271298DBB71E341E846139951D9B119C237BDD9AA6F7D16A62FC5D4D6BEA0288DAC700E5C87E472B75365C522B0342185F16854659EE48637B6124269C4E18CC040344928D115350805EF66738922230349DEC97E2D68D0B4175EA6B63BC161B841C150B7009AAC0E8A06CD34D3912926D98CEBF83F6C187AD08A5045F9868512EFDD478FAA81FA0402F5C44B3FD70F82BA4F102352A01B02B77F0FA096D', exponent: '10001', valid_from: 'Oct 3 08:22:02 2014 GMT', valid_to: 'Dec 21 11:07:29 2017 GMT', fingerprint: '35:3A:87:5C:91:8C:B2:7C:4E:87:D1:E3:26:84:57:E5:A1:73:62:F3', ext_key_usage: [ '1.3.6.1.5.5.7.3.1', '1.3.6.1.5.5.7.3.2' ], serialNumber: '****', raw: <Buffer 30 82 04 a7 30 82 03 8f a0 03 02 01 02 02 12 11 21 75 e4 f8 11 73 a4 c5 05 36 5f fe 9b b3 0b 4f 86 30 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 2e ... > } } 

J'ai été coincé avec ça depuis des jours maintenant et j'ai regardé partout, alors j'espère que quelqu'un peut m'aider avec ce point (ou au moins sur la bonne direction).

Essayez d'ajouter:

  tls: { rejectUnauthorized: false }, 

À votre objet d'options nodemailer.

Après avoir ajouté ce que suggère @Richard Macarthy, et en cherchant la nouvelle erreur, je suis revenu, j'ai compris que le courrier électronique dans mes mailOptions devait être le même que le courrier électronique que j'utilise pour envoyer les emails de – ce qui fait parfaitement Sens maintenant.

Dans ce cas:

 var mailOptions = { from: 'Olaf <[email protected]>', to: '[email protected]', ... 
 var transporter = nodemailer.createTransport({<br> host: 'hostSTMP', secure: false, //disable SSL requireTLS: true, //Force TLS tls: { rejectUnauthorized: false }, port: port, //Port of STMP service auth: { user: '[email protected]', pass: 'password' } }); 

RejectUnauthorised: s'il est vrai, le certificat du serveur est vérifié sur la liste des CA fournies. Un événement d'erreur est émis si la vérification échoue; Par défaut: vrai.

Rejeter l'autorisation: si faux, vous dites "Je ne m'intéresse pas si je ne peux pas vérifier l'identité du serveur".