m06_avd 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
package/06-02.js ADDED
@@ -0,0 +1,54 @@
1
+ const http = require('http');
2
+ const url = require('url');
3
+ const fs = require('fs');
4
+ const { parse } = require('querystring');
5
+ const nodemailer = require('nodemailer');
6
+ const sendmail = require('sendmail')
7
+
8
+
9
+
10
+ http.createServer((request, response) => {
11
+ response.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
12
+
13
+ if (url.parse(request.url).pathname === '/' && request.method === 'GET')
14
+ {
15
+ response.end(fs.readFileSync('./index.html'));
16
+ }
17
+ else if (url.parse(request.url).pathname === '/' && request.method === 'POST')
18
+ {
19
+ let body = '';
20
+ request.on('data', chunk => { body += chunk.toString(); });
21
+
22
+ request.on('end', () => {
23
+ let parm = parse(body);
24
+
25
+ const transporter = nodemailer.createTransport({
26
+ host: 'smtp.mail.ru',
27
+ port: 587,
28
+ secure: false,
29
+ auth: {
30
+ user: parm.sender,
31
+ pass: parm.password
32
+ }
33
+ });
34
+
35
+ const mailOptions = {
36
+ from: parm.sender,
37
+ to: parm.receiver,
38
+ text: parm.message
39
+ }
40
+
41
+ transporter.sendMail(mailOptions, (err, info) => {
42
+ err ? console.log(err) : console.log('Sent: ' + info.response);
43
+ })
44
+
45
+ response.end(`<h2>Отправитель: ${parm.sender}</br>Получатель: ${parm.receiver}
46
+ </br>Сообщение: ${parm.message}</h2>`);
47
+ })
48
+ }
49
+
50
+ else
51
+ response.end('<html><body><h1>Error! Visit localhost:5000/</h1></body></html>');
52
+ }).listen(5000, () => console.log('Server running at localhost:5000/\n'));
53
+
54
+ ///rtKrVy1nMbsgALmeXQv6
package/06-03.html ADDED
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <style type="text/css">
7
+ * {
8
+ background-color: #2f2f2f;
9
+ font-family: Verdana, Geneva, Tahoma, sans-serif;
10
+ color: whitesmoke;
11
+ }
12
+
13
+ .arr {
14
+ text-align: center;
15
+ }
16
+
17
+
18
+ </style>
19
+
20
+ </head>
21
+
22
+
23
+
24
+ <body>
25
+ <div id="container">
26
+ <form action="http://localhost:5000/" method="POST">
27
+ <table id="container_table">
28
+
29
+
30
+ <tr>
31
+ <td>Отправитель</td>
32
+ <td><input id="sender" type="email" name="sender" placeholder="Ваш e-mail"></td>
33
+ </tr>
34
+
35
+ <tr>
36
+ <td>Пароль</td>
37
+ <td><input id="password" type="password" name="password" placeholder="Ваш пароль"></td>
38
+ </tr>
39
+
40
+ <tr>
41
+ <td>Получатель</td>
42
+ <td><input id="receiver" type="email" name="receiver" placeholder="E-mail получателя"></td>
43
+ </tr>
44
+
45
+ <tr>
46
+ <td>Сообщение</td>
47
+ <td><input id="message" type="text" name="message" placeholder="Ваше сообщение"></td>
48
+ </tr>
49
+ </table>
50
+ </table>
51
+
52
+ <button type="submit">Отправить</button>
53
+ </form>
54
+ </div>
55
+
56
+ </body>
57
+ </html>
package/06-03.js ADDED
@@ -0,0 +1,40 @@
1
+ const http = require('http');
2
+ const send = require('./m06_AVD.js');
3
+ const fs = require('fs');
4
+ const { parse } = require('querystring');
5
+ const url = require('url');
6
+
7
+ http.createServer((request, response) => {
8
+ response.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
9
+
10
+ if (url.parse(request.url).pathname === '/' && request.method === 'GET')
11
+ {
12
+ response.end(fs.readFileSync('./06-03.html'));
13
+ }
14
+ else if (url.parse(request.url).pathname === '/' && request.method === 'POST')
15
+ {
16
+ let body = '';
17
+ request.on('data', chunk => { body += chunk.toString(); });
18
+
19
+ request.on('end', () => {
20
+ let parm = parse(body);
21
+
22
+ var message1 = "";
23
+ var rec = parm.receiver
24
+ var sen = parm.sender;
25
+ var pass = parm.password;
26
+ message1 = parm.message;
27
+ console.log(message1);
28
+ send(sen, pass, message1, rec);
29
+
30
+
31
+ response.end(`<h2>Отправитель: ${parm.sender}</br>Получатель: ${parm.receiver}
32
+ </br>Сообщение: ${parm.message}</h2>`);
33
+ })
34
+ }
35
+ else
36
+ response.end('<html><body><h1>Error! Visit localhost:5000/</h1></body></html>');
37
+
38
+
39
+
40
+ }).listen(5000, () => console.log('Server running at localhost:5000/\n'));
package/index.html ADDED
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <style type="text/css">
7
+ * {
8
+ background-color: #2f2f2f;
9
+ font-family: Verdana, Geneva, Tahoma, sans-serif;
10
+ color: whitesmoke;
11
+ }
12
+
13
+ .arr {
14
+ text-align: center;
15
+ }
16
+
17
+ </style>
18
+
19
+ </head>
20
+
21
+ <body>
22
+ <div id="container">
23
+ <form action="http://localhost:5000/" method="POST">
24
+ <table id="container_table">
25
+ <tr>
26
+ <td>Отправитель</td>
27
+ <td><input id="sender" type="email" name="sender" placeholder="Ваш e-mail"></td>
28
+ </tr>
29
+
30
+ <tr>
31
+ <td>Пароль</td>
32
+ <td><input id="password" type="password" name="password" placeholder="Ваш пароль"></td>
33
+ </tr>
34
+
35
+ <tr>
36
+ <td>Получатель</td>
37
+ <td><input id="receiver" type="email" name="receiver" placeholder="E-mail получателя"></td>
38
+ </tr>
39
+
40
+ <tr>
41
+ <td>Сообщение</td>
42
+ <td><input id="message" type="text" name="message" placeholder="Ваше сообщение"></td>
43
+ </tr>
44
+ </table>
45
+
46
+ <button type="submit">Отправить</button>
47
+ </form>
48
+ </div>
49
+
50
+ </body>
51
+ </html>
package/m06_AVD.js ADDED
@@ -0,0 +1,27 @@
1
+ const nodemailer = require('nodemailer');
2
+
3
+
4
+ send = (sender, password, message, receiver) =>
5
+ {
6
+
7
+ const mailOptions = {
8
+ from: sender,
9
+ to: receiver,
10
+ text: message
11
+ }
12
+
13
+ const transporter = nodemailer.createTransport({
14
+ host: 'smtp.mail.ru',
15
+ port: 587,
16
+ secure: false,
17
+ auth: {
18
+ user: sender,
19
+ pass: password
20
+ }
21
+ });
22
+ transporter.sendMail(mailOptions, (err, info) => {
23
+ err ? console.log(err) : console.log('Sent: ' + info.response);
24
+ })
25
+ }
26
+
27
+ module.exports = send;
package/package.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "dependencies": {
3
+ "nodemailer": "^6.9.7",
4
+ "sendmail": "^1.6.1"
5
+ },
6
+ "name": "m06_avd",
7
+ "version": "1.0.0",
8
+ "main": "m06_AVD.js",
9
+ "devDependencies": {},
10
+ "scripts": {
11
+ "test": "echo \"Error: no test specified\" && exit 1"
12
+ },
13
+ "author": "verok",
14
+ "license": "ISC",
15
+ "description": ""
16
+ }