2016-08-22 16 views
-1

настроить nodemailer локально, чтобы отправить почту с моего сайта его предполагают, чтобы собрать электронную почту с HTML и направить его на мой GMail аккаунт через контактную формуNodemailer Отправка сообщения с моего счета к нему самостоятельно

<form action="http://localhost:3000/contactForm" class="form-horizontal" 
method="post" role="form"> 
    <div class="row"> 
     <div class="col-md-12"> 
      <input class="form-control" name="name" placeholder="Name" 
      type="text"><br> 
      <input class="form-control" name="email" placeholder="Email" 
      type="email"><br> 
      <input class="form-control" name="subject" placeholder= 
      "Subject" type="text"> 
     </div> 
    </div><br> 
    <div class="row"> 
     <div class="col-md-12"> 
      <textarea class="form-control" cols="10" name="text" 
      placeholder="Feel free to send me a mail" rows="6"></textarea> 
     </div> 
    </div><button id="send" value="submit">Send</button><br> 
</form> 

Это файл server.js. Все работает так, как следует, отправляются письма, тема и текст собираются из html, переданного на сервер, и отправляются на мою учетную запись gmail, но по электронной почте он не вызывает потянув мою учетную запись Gmail по какой-либо причине, поэтому это в основном чтение с j*********@gmail.com на j*********@gmail.com в моей учетной записи электронной почты, которая побеждает весь момент, потому что я хочу, чтобы пользователь мог общаться со мной.

app.post('/contactForm', urlencodedParser, function(req, res) { 
response = { 
    email:req.body.email, 
    subject:req.body.subject, 
    text:req.body.text 
}; 

var transporter = nodemailer.createTransport({ 
    service: 'gmail', 
    auth: { 
     xoauth2: xoauth2.createXOAuth2Generator({ 
       user: 'j********@gmail.com', 
       clientId: '********************************************', 
       clientSecret: '****************************************', 
       refreshToken: '****************************************', 
       accessToken: '*******************************************' 
      }) 
     } 
}); 

var mailOptions = { 
    from: req.body.email, 
    to: '[email protected]', 
    subject: req.body.subject, 
    text: req.body.text 
}; 

transporter.sendMail(mailOptions, function(error, info) { 
    if(error) { 
     return console.log(error); 
    } else { 
     console.log('Message sent: ' + info.response) 
    } 
}); 

})

Спасибо за чтение через терпеливо и за любую помощь, которая может быть предоставлена ​​

ответ

0

Вы не сможете на самом деле отправить электронное письмо со счета пользователя с вашей текущей настройки. Вместо этого вы можете установить значение replyTo в объекте параметров на адрес электронной почты отправителя формы.

Смотрите варианты здесь:

https://github.com/nodemailer/nodemailer#e-mail-message-fields

Вы также можете установить name свойство. См. Параметры форматирования адреса здесь:

https://github.com/nodemailer/nodemailer#address-formatting