2017-01-24 4 views
0

投稿時にユーザーに電子メールを送信する簡単なフォームをセットアップしようとしています。私はnodejsで働いていて、助けてくれるようにnodemailerをインストールしました。私はSMTPサーバーとしてgmailを使用していて、いくつかの問題に直面していました。ここではHTMLは次のとおりです。nodejsでSMTPサーバーを設定する方法

<title> Schedule an Appointment - Name </title> 
<link rel="stylesheet" type="text/css" href="public/styles.css"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script src="public/script.js"></script> 

<ul id="nav"> 
    <li><a href="page.html"> Home </a><br> 
    <br> 
    <li><a class="active" href=""> Appointment </a> <br> 
    <br> 
    <li><a href="specsPage.html"> Build </a> <br> 
    <br> 
    <li><a href="contactPage.html"> Contact </a> <br> 
    <br> 
</ul> 

<div id="schedulePage"> 
    <h4> Schedule an Appointment </h4> 

    <div id="fullForm"> 

      First Name: <input id="firstname" type="text" name="firstname" placeholder="First Name..."> <br> 
      <br> 
      Last Name: <input id="lastname" type="text" name="lastname" placeholder="Last Name..."> <br> 
      <br> 
      Email: <input id="email" type="text" name="email" placeholder="Email..."> <br> 
      <br> 
      Phone Number: <input id="phone" type="text" name="phone" placeholder="Callback Number..."> <br> 
      <br> 
      <input id="send_email" type="submit" name="submit" value="Submit"> 
      <span id="message"></span> 


    </div> 
</div> 

とスクリプト:

$(document).ready(function(){ 
var from,to,subject,text; 
$("#send_email").click(function(){  
    to=$("#email").val(); 
    firstname=$("#firstname").val(); 
    lastname=$("#lastname").val(); 
    $("#message").text("Sending E-mail...Please wait"); 
    $.get("http://localhost:4000/send",{to:to,subject:firstname,text:lastname},function(data){ 
    if(data=="sent"){ 
     $("#message").empty().html(" Email is been sent at " + to + " . Please check inbox !"); 
    } 

    }); 
}); 
+1

を呼びますか? –

答えて

0

まず、あなたはGmailの How to enable less secure apps in google

安全性の低いアプリケーションを有効にする必要があり、ノード・メーラーをインストール

npm i nodemailer

これを貼り付けあなたのコードの関数

 var nodemailer = require('nodemailer'); 
    // create reusable transporter object using the default SMTP transport 
    var transporter = nodemailer.createTransport('smtps://yourmail%40gmail.com:[email protected]'); 

    // setup e-mail data with unicode symbols 

function sendmail(to,subject,text,html,info) { 

var mailOptions = { 
    from: '"Testing Mail" <[email protected]>', // sender address 
    to: to, // list of receivers 
    subject: subject, // Subject line 
    text: text, // plaintext body 
    html: html // html body 
}; 
transporter.sendMail(mailOptions, function(error, infoo){ 
    var res={ 
     responsecode:'' 
    } 
    if(error){ 
     res.responsecode=401; 
     return info(new Error(res.responsecode),null); 
    } 
    res.responsecode=200; 
    info(null,res.responsecode+infoo.response); 
});} 

今、あなたは、いくつかの `issues`が発生していると言うとき、私たちは問題が何であるかを推測する必要がない機能に

app.get('/send',function (req,res) { 
//pass value from your html form here 
sendmail('to', 'subject', 'body', '<h1>its Html</h1>', function (err, info) { 
    if (err) { 
     console.log("Error is " + err) 
     return 
    } 
    console.log("Email sent. " + info) 
})}) 
関連する問題