2013-06-05 53 views
4

試圖設置與nodemailer的聯繫表單。下面是在我的app.js:用nodemailer發送郵件 - 來自現場的電子郵件不正確

// EMail configuration 
var smtpTransport = nodemailer.createTransport("SMTP",{ 
    service: "Gmail", 
    auth: { 
     user: "myemailaddress", 
     pass: "xxx" 
    } 
}); 

// CONTACT FORM 
app.get('/contact', function (req, res) { 
    res.render("contact"); 
}); 

app.post('/contact', function (req, res) { 
    var mailOptions = { 
     from: req.body.email, // sender address 
     to: "myemailaddress", // list of receivers 
     subject: req.body.subject, // Subject line 
     text: req.body.message, // plaintext body 
    } 
    smtpTransport.sendMail(mailOptions, function(error, response){ 
     if(error){ 
      console.log(error); 
     }else{ 
      console.log("Message sent: " + response.message); 
     } 
     smtpTransport.close(); // shut down the connection pool, no more messages 
    }); 
    res.render("contact", { success: "building web app" }); 
}); 

而且我contact.jade模板看起來是這樣的:

form#contact-form(action="/contact", method="POST") 
div.span5 
    p Full name: 
     input#name(type="text", name="name") 
    p Email address: 
     input#email(type="email", name="email") 
    p Subject: 
     input#subject(type="text", name="subject") 
    p Message: 
     textarea#message(type="text", name="message", rows="5") 
    p: button(type="submit") Send message 

電子郵件現在的作品,而是來自myemailaddress而不是一個我進入電子郵件在模板上的字段。任何想法

回答

4

Gmail和許多其他電子郵件服務不允許您發送帶有各種FROM字段的郵件。

+1

啊節點模塊,OK。所以我會把它放在消息文本的正文中。感謝那。 – babbaggeii

+1

唯一可以修改的是發件人名稱,所以'Joe Doe <[email protected]>''可能是'我的郵件服務<[email protected]>' – wachme

+0

Thanks @wachme!我對使用電子郵件服務很陌生。你有一個允許這種定製的電子郵件提供商的短名單嗎?亞馬遜SES能夠做到這一點嗎?你可以分享原始文檔或其他資源,指定gmail不這樣做嗎?謝謝! – Adam