我发现一些代码可以调用nodemailer从表单发送电子邮件。在表格本身上,我用硬编码路线呼叫我的路线。
$.get("http://ec2-54-204-182-151.compute-1.amazonaws.com:8080/send",passData,function(data){
if(data=="sent")
{
$("#message").empty().html("Email has been sent at "+$scope.to+" . Please check inbox!");
}
});
在localhost上它可以工作,并且不会抱怨。当我使用我的aws域名和端口号调用相同的代码时,我得到以下内容:
XML解析错误:语法错误位置: http://ec2-54-204-182-151.compute-1.amazonaws.com:8080/send?name=todd&email=tcoulson%40gmail.com&subject=hello&message=now%20we%20have%20it&to=tcoulson%40gmail.com 第1行,第1列:
有没有办法可以重写调用,因此它不依赖于硬编码路径。我开始编写$ http指令以在angularjs中发布,但是我无法读取数据。这是代码:
$http({
url: '/send',
method: "POST",
data: passData,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
最后这是我试图打电话的路线。
app.post('/send',function(req,res){
var mailOptions={
to : 'buckscountytourofhonor@gmail.com',
from: req.query.email,
subject : req.query.subject,
text : req.query.name +": "+req.query.message
}
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");
}
});
我认为目前从$ http获取数据并不是req.query - 这对$ .get起作用。如果我使用$ http调用我在正确的轨道上,并且我可以编写代码清理器以删除硬编码的URL,请告诉我。
编辑:所以我能够更改我的代码,使用body-parser with express从angular获取信息到我的快速路由,并成功发送localhost上的电子邮件。但是当我把它放在AWS上时,它失败了:用于获取此资源的连接不安全。