Node.js senden Sie eine E-Mail mit Bild-Anhang mit nodemailer

Ich bin versucht, senden Sie eine E-Mail von einem post-request. Ich bin mit der Express-und nodemailer. Ich bin verwirrt durch 'fs' Meine E-Mail wird immer gesendet, aber das Bild ist nicht enthalten in der Anlage. Ich habe die docs, aber Sie alle scheinen zu senden statische Dateien, nicht die Dateien gestreamt werden, die von einem Formular anfordern.

var smtpTransport = nodemailer.createTransport("SMTP",{
  service: "Gmail",
  auth: {
    user: "[email protected]",
    pass: "password_for_gmail_address"
  }
});

app.get('/', function(req, res){
    res.send('<form method="post" enctype="multipart/form-data">'
      + '<p>Post Title: <input type="text" name="title"/></p>'
      + '<p>Post Content: <input type="text" name="content"/></p>'
      + '<p>Image: <input type="file" name="image"/></p>'
      + '<p><input type="submit" value="Upload"/></p>'
      + '</form>');
  })

app.post('/', function(req, res, next){
  var mailOptions = {
    from: "[email protected]", //sender address
    to: "[email protected]", //list of receivers
    subject: req.body.title, //Subject line
    text: req.body.content, //plaintext body
    attachments:[
      {
        fileName: req.body.title,
        streamSource: req.files.image
      }
    ]
  }

  smtpTransport.sendMail(mailOptions, function(error, response){
    if(error){
      console.log(error);
      res.send('Failed');
    }else{
      console.log("Message sent: " + response.message);
      res.send('Worked');
    }
  });   
});
InformationsquelleAutor PaulWoodIII | 2012-10-15
Schreibe einen Kommentar