lab05artsiom 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/05_02.js +57 -0
- package/05_03.js +25 -0
- package/05_NAO.js +30 -0
- package/index.html +62 -0
- package/package.json +15 -0
package/05_02.js
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
const http = require("http");
|
2
|
+
const fs = require("fs");
|
3
|
+
const nodemailer = require("nodemailer");
|
4
|
+
const url = require("url");
|
5
|
+
const Emitter = require("events");
|
6
|
+
const emitter = new Emitter();
|
7
|
+
|
8
|
+
let senderEmail;
|
9
|
+
let senderPass;
|
10
|
+
let receiverEmail;
|
11
|
+
let message;
|
12
|
+
|
13
|
+
emitter.on("POST", (request, response) => {
|
14
|
+
console.log("POST.MESSAGE");
|
15
|
+
request.on("data", (data) => {
|
16
|
+
let temp = JSON.parse(data);
|
17
|
+
senderEmail = temp.sender;
|
18
|
+
senderPass = temp.senderPass;
|
19
|
+
receiverEmail = temp.receiver;
|
20
|
+
message = temp.message;
|
21
|
+
let transporter = nodemailer.createTransport({
|
22
|
+
host: "smtp.gmail.com",
|
23
|
+
port: 465,
|
24
|
+
seccure: false,
|
25
|
+
service: "gmail",
|
26
|
+
auth: {
|
27
|
+
user: senderEmail,
|
28
|
+
pass: senderPass,
|
29
|
+
},
|
30
|
+
});
|
31
|
+
|
32
|
+
let mailOptions = {
|
33
|
+
from: senderEmail,
|
34
|
+
to: receiverEmail,
|
35
|
+
subject: "Sending email using Node.js",
|
36
|
+
text: message,
|
37
|
+
};
|
38
|
+
transporter.sendMail(mailOptions, function (error, info) {
|
39
|
+
if (error) {
|
40
|
+
console.log(error);
|
41
|
+
} else {
|
42
|
+
console.log("Email sent: " + info.response);
|
43
|
+
}
|
44
|
+
});
|
45
|
+
response.end(JSON.stringify(temp));
|
46
|
+
});
|
47
|
+
});
|
48
|
+
|
49
|
+
http.createServer((request, response) => {
|
50
|
+
let html = fs.readFileSync("index.html");
|
51
|
+
if (url.parse(request.url).pathname === "/") {
|
52
|
+
response.writeHead(200, { "Context-type": "text/html; charset=utf-8" });
|
53
|
+
response.end(html);
|
54
|
+
} else if (url.parse(request.url).pathname === "/send") {
|
55
|
+
emitter.emit(request.method, request, response);
|
56
|
+
}
|
57
|
+
}).listen(5000, console.log("Server is running"));
|
package/05_03.js
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
const send = require("./05_NAO");
|
2
|
+
const http = require("http");
|
3
|
+
const fs = require("fs");
|
4
|
+
const url = require("url");
|
5
|
+
const Emitter = require("events");
|
6
|
+
const emitter = new Emitter();
|
7
|
+
|
8
|
+
emitter.on("POST", (request, response) => {
|
9
|
+
console.log("POST.MESSAGE");
|
10
|
+
request.on("data", (data) => {
|
11
|
+
let temp = JSON.parse(data);
|
12
|
+
send(temp.sender, temp.senderPass, temp.receiver, temp.message);
|
13
|
+
response.end(JSON.stringify(temp));
|
14
|
+
});
|
15
|
+
});
|
16
|
+
|
17
|
+
http.createServer((request, response) => {
|
18
|
+
let html = fs.readFileSync("index.html");
|
19
|
+
if (url.parse(request.url).pathname === "/") {
|
20
|
+
response.writeHead(200, { "Context-type": "text/html; charset=utf-8" });
|
21
|
+
response.end(html);
|
22
|
+
} else if (url.parse(request.url).pathname === "/send") {
|
23
|
+
emitter.emit(request.method, request, response);
|
24
|
+
}
|
25
|
+
}).listen(5000, console.log("Server is running"));
|
package/05_NAO.js
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
const nodemailer = require("nodemailer");
|
2
|
+
|
3
|
+
send = (senderAddr, senderPass, receiverAddr, message) => {
|
4
|
+
let transporter = nodemailer.createTransport({
|
5
|
+
host: "smtp.gmail.com",
|
6
|
+
port: 465,
|
7
|
+
seccure: false,
|
8
|
+
service: "gmail",
|
9
|
+
auth: {
|
10
|
+
user: senderAddr,
|
11
|
+
pass: senderPass,
|
12
|
+
},
|
13
|
+
});
|
14
|
+
|
15
|
+
let mailOptions = {
|
16
|
+
from: senderAddr,
|
17
|
+
to: receiverAddr,
|
18
|
+
subject: "Sending email using Node.js",
|
19
|
+
text: message,
|
20
|
+
};
|
21
|
+
transporter.sendMail(mailOptions, function (error, info) {
|
22
|
+
if (error) {
|
23
|
+
console.log(error);
|
24
|
+
} else {
|
25
|
+
console.log("Email sent: " + info.response);
|
26
|
+
}
|
27
|
+
});
|
28
|
+
};
|
29
|
+
|
30
|
+
module.exports = send;
|
package/index.html
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8" />
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
6
|
+
<title>Lab5</title>
|
7
|
+
<style>
|
8
|
+
div {
|
9
|
+
margin: 20px 0 20px 0;
|
10
|
+
}
|
11
|
+
</style>
|
12
|
+
</head>
|
13
|
+
<body>
|
14
|
+
<div class="mail_container">
|
15
|
+
<div class="sender_container">
|
16
|
+
<label>Email отправителя</label>
|
17
|
+
<input type="email" id="sender" />
|
18
|
+
</div>
|
19
|
+
<div class="sender_container">
|
20
|
+
<label>Pass отправителя</label>
|
21
|
+
<input type="password" id="sender_password" />
|
22
|
+
</div>
|
23
|
+
<div class="receiver_container">
|
24
|
+
<label>Email получателя</label>
|
25
|
+
<input type="email" name="" id="receiver" />
|
26
|
+
</div>
|
27
|
+
<div class="message">
|
28
|
+
<label>Сообщение для отправки</label>
|
29
|
+
<input type="text" id="text" />
|
30
|
+
</div>
|
31
|
+
<div class="button_send">
|
32
|
+
<button onclick="Post()">Отправить сообщение</button>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
|
36
|
+
<script>
|
37
|
+
function Post() {
|
38
|
+
console.log("Message sent");
|
39
|
+
fetch("http://localhost:5000/send", {
|
40
|
+
method: "POST",
|
41
|
+
mode: "no-cors",
|
42
|
+
headers: {
|
43
|
+
"Content-Type": "application/json",
|
44
|
+
Accept: "application/json",
|
45
|
+
},
|
46
|
+
body: JSON.stringify({
|
47
|
+
sender: sender.value,
|
48
|
+
senderPass: sender_password.value,
|
49
|
+
receiver: receiver.value,
|
50
|
+
message: text.value,
|
51
|
+
}),
|
52
|
+
})
|
53
|
+
.then((response) => {
|
54
|
+
return response.json();
|
55
|
+
})
|
56
|
+
.then((pdata) => {
|
57
|
+
console.log("Message", pdata);
|
58
|
+
});
|
59
|
+
}
|
60
|
+
</script>
|
61
|
+
</body>
|
62
|
+
</html>
|
package/package.json
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"dependencies": {
|
3
|
+
"nodemailer": "^6.9.5"
|
4
|
+
},
|
5
|
+
"name": "lab05artsiom",
|
6
|
+
"version": "1.0.0",
|
7
|
+
"main": "05_03.js",
|
8
|
+
"devDependencies": {},
|
9
|
+
"scripts": {
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
11
|
+
},
|
12
|
+
"author": "",
|
13
|
+
"license": "ISC",
|
14
|
+
"description": ""
|
15
|
+
}
|