我对网络开发和网络相关概念和框架(IP,网络,路由器,我每次都畏缩:D)都很陌生。
但是,由于一些实习工作,我“强迫自己”使用这个并且由于在互联网上的大量挖掘,我设法开发了一个超级简单的应用程序,如果我在我的本地主机下可以发送电子邮件。但是,我有一些(很多)问题,但首先是包含我所有代码的文件:
Package.json文件
{
"name": "email-node",
"version": "1.0.0",
"dependencies": {
"nodemailer": "~0.7.1",
"express": "~4.5.1"
}
}
的index.html
<html>
<head>
<title>Node.JS Email application</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>// <![CDATA[
$(document).ready(function(){
var from,to,subject,text;
$("#send_email").click(function(){
to=$("#to").val();
subject=$("#subject").val();
text=$("#content").val();
$("#message").text("Sending E-mail...Please wait");
$.get("http://localhost:3000/send",{to:to,subject:subject,text:text},function(data) {
if(data=="sent") {
$("#message").empty().html("Email is been sent at "+to+" . Please check inbox !");
}
});
});
});
</script>
</head>
<body>
<div id="container">
<h1>Mailer In Node.JS</h1>
<input id="to" type="text" placeholder="Enter E-mail ID where you want to send" />
<input id="subject" type="text" placeholder="Write Subject" />
<textarea id="content" cols="40" rows="5" placeholder="Write what you want to send"></textarea>
<button id="send_email">Send Email</button>
<span id="message"></span>
</div>
</body>
</html>
app.js文件
var express=require('express');
var nodemailer = require("nodemailer");
var app=express();
/*
Here we are configuring our SMTP Server details.
STMP is mail server which is responsible for sending and recieving email.
*/
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "MYGMAIL@gmail.com",
pass: "MYGMAILPASS"
}
});
/*------------------SMTP Over-----------------------------*/
/*------------------Routing Started ------------------------*/
app.get('/',function(req,res){
res.sendfile('index.html');
});
app.get('/send',function(req,res){
var mailOptions={
to : req.query.to,
subject : req.query.subject,
text : req.query.text
}
console.log(mailOptions);
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
res.end("error");
}else{
console.log("Message sent: " + response.message);
res.end("sent");
}
});
});
/*--------------------Routing Over----------------------------*/
app.listen(3000,function(){
console.log("Express Started on Port 3000");
});
从我在这里读到的是我得出的结论:
Node.js + Express应用程序始终“侦听”端口3000上的传入连接,这是我使用的值。
理想情况下,要从网站而不是本地主机发送内容,我认为问题出在index.html文件中。
具体来说,这一行:
$.get("http://localhost:3000/send",{to:to,subject:subject,text:text},function(data){
而不是使用http://localhost:3000/send我会使用类似的东西:
http://bruno-oliveira.github.io:3000/send
我已经阅读了无数的论坛和帖子,尝试了以下所有内容:
$.get("/send",{to:to,subject:subject,text:text},function(data){
搜索github服务器IP地址范围(https://developer.github.com/v3/meta/)尝试直接使用它们,似乎没有任何工作......
该应用程序应该在这里托管:
http://bruno-oliveira.github.io/
有人可以帮助我吗?
最佳,
布鲁诺