带电子邮件服务的基本服务

时间:2017-07-11 12:05:40

标签: javascript html node.js web server

我想请一些指导,我想主持我的一个项目网站。 我已完成前端并输入文件夹名Client。 它包含多个文件夹中需要的资源index.html以及一些带有文本/照片的页面,但还有另一个名为registration.html的页面,其中喜欢注册项目的人可以注册。 注册页面如下所示

<form method="post" action="formdata">
  <input type="text" id="name" value="" placeholder="name"/>
  ...<!-- other fields -->
</form>

上面的字段应该发送到我的电子邮箱。

现在这里是我被卡住的地方,服务器端。 在名为server的文件夹中,我编写了这个简单的代码server.js来托管页面但没有任何功能。

var app = require('koa')();
var serve = require('koa-static');

app.use(serve('../Client'));

app.listen(8080);

如何让此服务器从客户端获取数据并将其发送到我的电子邮件?

2 个答案:

答案 0 :(得分:0)

您可以使AJAX请求将数据从frontEnd发送到backEnd。

如果你使用普通的香草JS,你可以这样做

var xhttp = new XMLHttpRequest();
xhttp.open("POST", "/sendEmail", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fname=Henry&lname=Ford");

或者如果您使用的是jQuery,则可以直接使用post方法

在你的后端,你将需要设置一条路线来收听这个请求,因为你正在使用Koa

var koa = require('koa');
var http = require('http');
var router = require('koa-router')();
var bodyParser = require('koa-body')();

router.post('/sendEmail', bodyParser, function *(next){
  console.log(this.request.body);
  yield(next);
});

现在,您可以在表单上使用mailto属性从前端本身打开邮件客户端而无需发出请求。像这样会弹出带有正文的邮件客户端

<a href="mailto:someone@example.com?subject=Suggestions&body=Your%20suggestions%20are%20really%20important%20to%20us%20,thanks!">Send suggestions!</a>

答案 1 :(得分:0)

@Shivam谢谢,尽力而为。 从客户端发送的数据使用JSON.stringify()进行编码;并以字符串形式发送

var app = require('koa')();
var http = require('http');
var router = require('koa-router')();
var bodyParser = require('koa-body')();
var serve = require('koa-static');

app.use(serve('../Client')); //serve public files

router.post("/sendEmail", bodyParser, function *(next){
    //get form data from client
    console.log("Got data")
    var datastring = this.request.body;
    console.log(datastring);
    yield(next);
});

app.use(router.routes()); //use routes

app.use(function *(){
    //redirect 404
    this.redirect('/index.html');
});

console.log("Running on 8080");
app.listen(8080);

这是代码,也许其他人也需要这个