2013-06-05 5 views
4

Попытка создать контактную форму с nodemailer. Вот что в моем app.js:отправка почты с nodemailer - e-mail из поля неправильный

// 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

Ах, хорошо. Поэтому я помещу его в текст сообщения. Спасибо за это. – babbaggeii

+1

Единственное, что вы можете изменить, это имя отправителя, поэтому 'Joe Doe <[email protected]>' может быть 'Мой почтовый сервис <[email protected]>' – wachme

+0

Спасибо @wachme! Я довольно новичок в использовании почтовых служб. У вас есть короткий список поставщиков электронной почты, которые разрешают эту настройку? Сможет ли Amazon SES это сделать? И можете ли вы поделиться оригинальными документами или другими ресурсами, которые указывают, что gmail не делает этого? Благодаря! – Adam

0

вы можете использовать почтовую марку, они обеспечивают отличную API для отправки сообщений электронной почты и есть модуль узла для него (https://npmjs.org/package/postmark)

Смежные вопросы