Bonjour à tous,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'essaie de faire un système de confirmation d'inscription via un système de mail. Pour l'envoie de mail avec NodeJS, j'utilise nodemailer. En suivant le tuto de Grafikart, j'ai configuré une entrée DNS pour DKIM. J'ai donc les choses suivantes:

Code NodeJS:

exports.sendEmail = function(destinataire){
    return new Promise(function(resolve, reject){
        database.getActivationNumber(destinataire).then(function(result){
            let transporter = nodemailer.createTransport({
                debug: true,
                logger: true,
                sendmail: true,
                dkim: {
                    domainName: "alexandrie.ovh",
                    keySelector: "default",
                    privateKey: key
                }
            });
            transporter.sendMail({
                from: 'noreply@alexandrie.ovh',
                to: destinataire,
                subject: 'Validation de votre inscription',
                text: `Votre inscription sur le site d\'Alexandrie est faite. Merci de confirmer votre inscription en cliquant sur le lien suivant: http://79.137.31.137:8080/activation/${result}`
            }, function (err, info) {
                if (err){
                    console.log(err);
                    reject(err);
                }
                else{
                    resolve(info);
                }
            });
        }, function(error){
            console.log(error);
            reject(error);
        });
    });
};

Entrées DNS:

(je préfère prendre une capture d'écran pour que ce soit le plus clair possible)

Ce que je veux

Ce que j'aimerais c'est que mon mail soit correctement signé pour pouvoir passer les filtres spams de Gmail, Outlook, etc.

Ce que j'obtiens

Voici le résultat de dkimvalidator:

DKIM Information:

DKIM Signature

Message contains this DKIM Signature:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alexandrie.ovh;
 q=dns/txt; s=default; bh=7Dg6dqkrx3VhOcAQnoiLboPbRJwNEgadUl+HfzlbxLQ=;
 h=from:subject:date:message-id:to:mime-version:content-type:content-transfer-encoding;
 b=qfgp8M46/lOOpqdb8Dawu3emDbspS6+0UnXwqwQwuKc4c8UqkYtVM1d40f0JalcMmWIRBz6YP
 y2N3IRtLMJYnKbhCNjCB74AYfmYR1AzkrdHDSlPkPR3dcCA1qRbXhAcje+B+LiEp8Ml/Pf2S1tB
 yfPeoG7Ptr9eZy4TPwrzQYI=

Signature Information:
v= Version:         1
a= Algorithm:       rsa-sha256
c= Method:          relaxed/relaxed
d= Domain:          alexandrie.ovh
s= Selector:        default
q= Protocol:        dns/txt
bh=                 7Dg6dqkrx3VhOcAQnoiLboPbRJwNEgadUl+HfzlbxLQ=
h= Signed Headers:  from:subject:date:message-id:to:mime-version:content-type:content-transfer-encoding
b= Data:            qfgp8M46/lOOpqdb8Dawu3emDbspS6+0UnXwqwQwuKc4c8UqkYtVM1d40f0JalcMmWIRBz6YP
 y2N3IRtLMJYnKbhCNjCB74AYfmYR1AzkrdHDSlPkPR3dcCA1qRbXhAcje+B+LiEp8Ml/Pf2S1tB
 yfPeoG7Ptr9eZy4TPwrzQYI=
Public Key DNS Lookup

Building DNS Query for default._domainkey.alexandrie.ovh
Retrieved this publickey from DNS: v=DKIM1; k=rsa; t=s; s=*; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBDJk+0Rj2uMvgKtOPcuz3vb1SOgN0E3sNRzDDily4DWG6bv/IgyEfX1yhyMUWDiqxgLcUtD2SLzeuOWNGojXcvfXbCVnYhlkYh1mOcwy2Xpqy6/JkAslSIWMVk3S7jU8X8Al3LUNzsd9/hQjikeAS0/0hvtpZ08s3ivX8YqNtZwIDAQAB
Validating Signature

result = fail
Details: body has been altered

Malheureusement, en utilisant les outils mail-tester et dkimvalidator, on me dit que la signature n'est pas bonne. Je ne comprends pas du tout pourquoi ce n'est pas bon. Je ne sais pas si des utilisateurs de nodemailer ont déjà eu ce souci, mais si c'est le cas, comment avez-vous fait pour régler le problème ? Sinon, est-ce que quelqu'un a une idée de ce qui fait planté ma signature ?

Je vous remercie d'avance pour votre aide :)

4 réponses


Draserwang
Auteur
Réponse acceptée

J'ai trouvé le souci. Apparement, il fallait upgrader sur la dernière version de Nodemailer :) Depuis, je passe les tests ^^

Salut,
Je travaille ce soir sur la même chose que toi, et j'ai exactement le même problème que toi..
Actuellement j'attends que mes DNS prennent la modification en compte (je viens de modifier qqchose).
Je donne une key à nodemailer et celui-ci n'envoit pas la bonne key...
Si je trouve le problème je reviens vers toi, fait de même please :-)
Les galères de la cm de nodejs ahah, courage!
EDIT: encore pire, actuellement le transporter ne signe plus mes messages, la documentation est assez mal fichue je trouve...

J'ai déjà eu ça. C'est parce que la clé que tu lui donnes n'est pas au format PEM. Tu dois laisser le fichier intact (sans tout mettre sur une ligne) ^^ Mais sinon, pour le reste, je n'y arrive pas :'(

Je retourne les news, j'ai réussi à le faire fonctionner (erreur de ma part dans la configuration).
Ton problème provient peut-être du saut de ligne à la fin si tu en as un ? Lorsque j'ai Googler j'ai trouvé ça qui pourrait altérer ta signature..