hmm: Nodemailer von Node.js

Beitrag lesen

Moin Moin,

ich soll eine Anwendung schreiben die Name und EMail entgegen nimmt und einen Aktivierungslink an den EMail Inhaber sendet.

Gegeben habe ich folgende daten:

   var transporterObjectConfig = nodemailer.createTransport('SMTP', {
    host: 'exchange.tu-berlin.de',
    port: '587',
    secure: false,
    requireTLS: true,
    auth: {
    user: 'ich@win.tu-berlin.de',
    pass: 'meinpassword'
    }
    });

das grundgerüst von nodemailer sieht so aus:

    var nodemailer = require('nodemailer');
    
    var transporter = nodemailer.createTransport('smtps://user%40gmail.com:pass@smtp.gmail.com');
       
    // setup e-mail data with unicode symbols
    var mailOptions = {
        from: '"Christopher" <ich@campus.tu-berlin.de>', // sender address
        to: 'ichk@gmx.de', // list of receivers
        subject: 'Hello ✔', // Subject line
        text: 'Hello world ?', // plaintext body
        html: '<b>Hello world ?</b>' // html body
    };
    
    // send mail with defined transport object
    transporter.sendMail(mailOptions, function(error, info){
        if(error){
            return console.log(error);
        }
        console.log('Message sent: ' + info.response);
    });

fragen:

  1. für die eingabe würde ich eine form in html schreiben mit einem sende button, wie fliegt die form eingabe rüber in mein node.js script? bisher habe ich node.js immer nur per console "node test.js" gestartet

  2. mein akuteller versuch, bei dem ich mir eine mail schicken wollte, scheitert:

    var nodemailer = require('nodemailer');
    
    //var transporter = nodemailer.createTransport('smtps://user%40gmail.com:pass@smtp.gmail.com');
    
    var transporterObjectConfig = nodemailer.createTransport('SMTP', {
    host: 'exchange.tu-berlin.de',
    port: '587',
    secure: false,
    requireTLS: true,
    auth: {
    user: 'ich@win.tu-berlin.de',
    pass: 'meins'
    }
    });

    
    // setup e-mail data with unicode symbols
    var mailOptions = {
        from: '"Christopher" <ich@campus.tu-berlin.de>', // sender address
        to: 'ich@gmx.de', // list of receivers
        subject: 'Hello ✔', // Subject line
        text: 'Hello world ?', // plaintext body
        html: '<b>Hello world ?</b>' // html body
    };
    
    // send mail with defined transport object
    transporterObjectConfig.sendMail(mailOptions, function(error, info){
        if(error){
            return console.log(error);
        }
        console.log('Message sent: ' + info.response);
    });

passwörter und email habe ich richtig eingetragen. fehlermeldung:

/home/ubuntu/workspace/node_modules/nodemailer/lib/mailer/index.js:31 compile: [(...args) => this._convertDataImages(...args)], ^^^

SyntaxError: Unexpected token ... at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:373:25) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object.<anonymous> (/home/ubuntu/workspace/node_modules/nodemailer/lib/nodemailer.js:3:16) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10)

transporterObjectConfig ist von der uni vorgegeben, wie benutze ich das? ich habe auch etwas von eindeutigen strings gelesen, aber das deckt sich nicht mit verschiedenen quellen die ich im internet gefunden habe. wie ist der nächste schritt zum email verwenden?