m0603_evg_spr 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of m0603_evg_spr might be problematic. Click here for more details.
- package/06-02.html +35 -0
- package/06-02.js +55 -0
- package/06-03.js +3 -0
- package/m06-03.js +34 -0
- package/node_lab06/06-02.html +68 -0
- package/node_lab06/06-02.js +52 -0
- package/node_lab06/06-03.js +3 -0
- package/node_lab06/06-04.js +3 -0
- package/node_lab06/m0603.js +28 -0
- package/node_lab06/node_modules/.package-lock.json +6 -0
- package/node_lab06/package/index.js +28 -0
- package/node_lab06/package/package.json +23 -0
- package/node_lab06/package-lock.json +6 -0
- package/node_lab06/package.json +1 -0
- package/package.json +25 -0
- package//320/233/320/260/320/261/320/276/321/200/320/260/321/202/320/276/321/200/320/275/320/260/321/217_/321/200/320/260/320/261/320/276/321/202/320/260_06.docx +0 -0
- package//320/233/320/260/320/261/320/276/321/200/320/260/321/202/320/276/321/200/320/275/320/260/321/217_/321/200/320/260/320/261/320/276/321/202/320/260_06.pdf +0 -0
package/06-02.html
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<title>Node 06-02</title>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<h1>task 06-02</h1>
|
9
|
+
<form action="http://localhost:5000/" method="POST">
|
10
|
+
<div class="row">
|
11
|
+
<label>Sender:</label><br>
|
12
|
+
<input type="email" name="sender" required/>
|
13
|
+
</div>
|
14
|
+
<div class="row">
|
15
|
+
<label>Password:</label><br>
|
16
|
+
<input type="password" name="password" required/>
|
17
|
+
</div>
|
18
|
+
<div class="row">
|
19
|
+
<label>Receiver</label><br>
|
20
|
+
<input type="email" name="receiver" required/>
|
21
|
+
</div>
|
22
|
+
<div class="row">
|
23
|
+
<label>Subject:</label><br>
|
24
|
+
<input type="text" name="subject" required/>
|
25
|
+
</div>
|
26
|
+
<div class="row">
|
27
|
+
<label>Your message:</label><br>
|
28
|
+
<input type="text" name="message" required/>
|
29
|
+
</div>
|
30
|
+
<div>
|
31
|
+
<button type="submit">Send message</button>
|
32
|
+
</div>
|
33
|
+
</form>
|
34
|
+
</body>
|
35
|
+
</html>
|
package/06-02.js
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
const http = require('http');
|
2
|
+
const fs = require('fs');
|
3
|
+
const url = require('url');
|
4
|
+
const { parse } = require('querystring');
|
5
|
+
|
6
|
+
const nodemailer = require('nodemailer');
|
7
|
+
|
8
|
+
let server = http.createServer(function (request, response) {
|
9
|
+
if (url.parse(request.url).pathname === '/' && request.method === 'GET') {
|
10
|
+
response.writeHead(200, {'Content-Type' : 'text/html; charset=utf-8'});
|
11
|
+
response.end(fs.readFileSync('./06-02.html'))
|
12
|
+
}
|
13
|
+
else if (url.parse(request.url).pathname === '/' && request.method === 'POST') {
|
14
|
+
let body = '';
|
15
|
+
request.on('data', chunk => { body += chunk.toString(); });
|
16
|
+
request.on('end', () => {
|
17
|
+
let parm = parse(body);
|
18
|
+
|
19
|
+
var transporter = nodemailer.createTransport({
|
20
|
+
service: "Outlook365",
|
21
|
+
host: "smtp.office365.com",
|
22
|
+
port: "587",
|
23
|
+
tls: {
|
24
|
+
ciphers: "SSLv3",
|
25
|
+
rejectUnauthorized: false,
|
26
|
+
},
|
27
|
+
auth: {
|
28
|
+
user: parm.sender,
|
29
|
+
pass: parm.password,
|
30
|
+
},
|
31
|
+
});
|
32
|
+
|
33
|
+
const options = {
|
34
|
+
from: parm.sender,
|
35
|
+
to: parm.receiver,
|
36
|
+
subject: parm.subject,
|
37
|
+
text: parm.message,
|
38
|
+
}
|
39
|
+
|
40
|
+
transporter.sendMail(options, (err, info) => {
|
41
|
+
if(err) {
|
42
|
+
console.log(err);
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
console.log("Sent: " + info.response);
|
46
|
+
})
|
47
|
+
|
48
|
+
response.writeHead(200, {'Content-Type' : 'text/html; charset=utf-8'});
|
49
|
+
response.end(`<h1>Sent from ${parm.sender} to ${parm.receiver}: ${parm.message}</h1>`);
|
50
|
+
})
|
51
|
+
}
|
52
|
+
else response.end('<h1>something is wrong</h1>');
|
53
|
+
}).listen(5000);
|
54
|
+
|
55
|
+
console.log('Server running at http://localhost:5000/');
|
package/06-03.js
ADDED
package/m06-03.js
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
const nodemailer = require('nodemailer');
|
2
|
+
|
3
|
+
var transporter = nodemailer.createTransport({
|
4
|
+
service: "Outlook365",
|
5
|
+
host: "smtp.office365.com",
|
6
|
+
port: "587",
|
7
|
+
tls: {
|
8
|
+
ciphers: "SSLv3",
|
9
|
+
rejectUnauthorized: false,
|
10
|
+
},
|
11
|
+
auth: {
|
12
|
+
user: "evgeny_super@outlook.com",
|
13
|
+
pass: "pyhileumbddwmcmj",
|
14
|
+
},
|
15
|
+
});
|
16
|
+
|
17
|
+
function send(message) {
|
18
|
+
const options = {
|
19
|
+
from: "evgeny_super@outlook.com",
|
20
|
+
to: "evgeny_super@outlook.com",
|
21
|
+
subject: "06-03",
|
22
|
+
text: message,
|
23
|
+
}
|
24
|
+
|
25
|
+
transporter.sendMail(options, (err, info) => {
|
26
|
+
if(err) {
|
27
|
+
console.log(err);
|
28
|
+
return;
|
29
|
+
}
|
30
|
+
console.log("Sent: " + info.response);
|
31
|
+
})
|
32
|
+
}
|
33
|
+
|
34
|
+
module.exports = send;
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<title>Node 04-02</title>
|
6
|
+
<style type="text/css">
|
7
|
+
* {
|
8
|
+
color: #011627;
|
9
|
+
background-color: #f5f5f5;
|
10
|
+
text-align: center;
|
11
|
+
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
|
12
|
+
}
|
13
|
+
button {
|
14
|
+
background-color:#ffc857;
|
15
|
+
border: none;
|
16
|
+
color: white;
|
17
|
+
padding: 8px 15px;
|
18
|
+
text-align: center;
|
19
|
+
font-size: 14pt;
|
20
|
+
border-radius: 10px;
|
21
|
+
}
|
22
|
+
#status {
|
23
|
+
margin: auto;
|
24
|
+
margin-top: 10px;
|
25
|
+
padding: 10px;
|
26
|
+
width: fit-content;
|
27
|
+
border-radius: 10px;
|
28
|
+
border: 3px solid #8980f5;
|
29
|
+
text-align: center;
|
30
|
+
display: none;
|
31
|
+
padding: 10px 20px;
|
32
|
+
max-width: 600px;
|
33
|
+
}
|
34
|
+
.row {
|
35
|
+
margin-bottom: 20px;
|
36
|
+
}
|
37
|
+
</style>
|
38
|
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
|
39
|
+
</head>
|
40
|
+
<body>
|
41
|
+
<h1>task 06-02</h1>
|
42
|
+
<form action="http://localhost:5000/" method="POST">
|
43
|
+
<div class="row">
|
44
|
+
<label>Sender:</label><br>
|
45
|
+
<input type="email" name="sender" required/>
|
46
|
+
</div>
|
47
|
+
<div class="row">
|
48
|
+
<label>Password:</label><br>
|
49
|
+
<input type="password" name="password" required/>
|
50
|
+
</div>
|
51
|
+
<div class="row">
|
52
|
+
<label>Receiver</label><br>
|
53
|
+
<input type="email" name="receiver" required/>
|
54
|
+
</div>
|
55
|
+
<div class="row">
|
56
|
+
<label>Subject:</label><br>
|
57
|
+
<input type="text" name="subject" required/>
|
58
|
+
</div>
|
59
|
+
<div class="row">
|
60
|
+
<label>Your message:</label><br>
|
61
|
+
<input type="text" name="message" required/>
|
62
|
+
</div>
|
63
|
+
<div>
|
64
|
+
<button type="submit">Send message</button>
|
65
|
+
</div>
|
66
|
+
</form>
|
67
|
+
</body>
|
68
|
+
</html>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
const http = require('http');
|
2
|
+
const fs = require('fs');
|
3
|
+
const url = require('url');
|
4
|
+
const { parse } = require('querystring');
|
5
|
+
|
6
|
+
const nodemailer = require('nodemailer');
|
7
|
+
|
8
|
+
let server = http.createServer(function (request, response) {
|
9
|
+
if (url.parse(request.url).pathname === '/' && request.method === 'GET') {
|
10
|
+
response.writeHead(200, {'Content-Type' : 'text/html; charset=utf-8'});
|
11
|
+
response.end(fs.readFileSync('./06-02.html'))
|
12
|
+
}
|
13
|
+
else if (url.parse(request.url).pathname === '/' && request.method === 'POST') {
|
14
|
+
let body = '';
|
15
|
+
request.on('data', chunk => { body += chunk.toString(); });
|
16
|
+
request.on('end', () => {
|
17
|
+
let parm = parse(body);
|
18
|
+
|
19
|
+
// чтобы можно было отправить с гугловской почты: включить функцию по ссылке
|
20
|
+
// https://myaccount.google.com/lesssecureapps
|
21
|
+
|
22
|
+
const transporter = nodemailer.createTransport({
|
23
|
+
service: "Gmail",
|
24
|
+
auth: {
|
25
|
+
user: parm.sender,
|
26
|
+
pass: parm.password,
|
27
|
+
},
|
28
|
+
});
|
29
|
+
|
30
|
+
const options = {
|
31
|
+
from: parm.sender,
|
32
|
+
to: parm.receiver,
|
33
|
+
subject: parm.subject,
|
34
|
+
text: parm.message,
|
35
|
+
}
|
36
|
+
|
37
|
+
transporter.sendMail(options, (err, info) => {
|
38
|
+
if(err) {
|
39
|
+
console.log(err);
|
40
|
+
return;
|
41
|
+
}
|
42
|
+
console.log("Sent: " + info.response);
|
43
|
+
})
|
44
|
+
|
45
|
+
response.writeHead(200, {'Content-Type' : 'text/html; charset=utf-8'});
|
46
|
+
response.end(`<h1>Sent from ${parm.sender} to ${parm.receiver}: ${parm.message}</h1>`);
|
47
|
+
})
|
48
|
+
}
|
49
|
+
else response.end('<h1>something is wrong</h1>');
|
50
|
+
}).listen(5000);
|
51
|
+
|
52
|
+
console.log('Server running at http://localhost:5000/');
|
@@ -0,0 +1,28 @@
|
|
1
|
+
const nodemailer = require('nodemailer');
|
2
|
+
|
3
|
+
const transporter = nodemailer.createTransport({
|
4
|
+
service: "Gmail",
|
5
|
+
auth: {
|
6
|
+
user: "email1@gmail.com",
|
7
|
+
pass: "pass",
|
8
|
+
},
|
9
|
+
});
|
10
|
+
|
11
|
+
function send(message) {
|
12
|
+
const options = {
|
13
|
+
from: "email1@gmail.com",
|
14
|
+
to: "email2@gmail.com",
|
15
|
+
subject: "06-03",
|
16
|
+
text: message,
|
17
|
+
}
|
18
|
+
|
19
|
+
transporter.sendMail(options, (err, info) => {
|
20
|
+
if(err) {
|
21
|
+
console.log(err);
|
22
|
+
return;
|
23
|
+
}
|
24
|
+
console.log("Sent: " + info.response);
|
25
|
+
})
|
26
|
+
}
|
27
|
+
|
28
|
+
module.exports = send;
|
@@ -0,0 +1,28 @@
|
|
1
|
+
const nodemailer = require('nodemailer');
|
2
|
+
|
3
|
+
const transporter = nodemailer.createTransport({
|
4
|
+
service: "Gmail",
|
5
|
+
auth: {
|
6
|
+
user: "email1@gmail.com",
|
7
|
+
pass: "pass",
|
8
|
+
},
|
9
|
+
});
|
10
|
+
|
11
|
+
function send(message) {
|
12
|
+
const options = {
|
13
|
+
from: "email1@gmail.com",
|
14
|
+
to: "email2@gmail.com",
|
15
|
+
subject: "06-03",
|
16
|
+
text: message,
|
17
|
+
}
|
18
|
+
|
19
|
+
transporter.sendMail(options, (err, info) => {
|
20
|
+
if(err) {
|
21
|
+
console.log(err);
|
22
|
+
return;
|
23
|
+
}
|
24
|
+
console.log("Sent: " + info.response);
|
25
|
+
})
|
26
|
+
}
|
27
|
+
|
28
|
+
module.exports = send;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"name": "@moony_bilcherry/m0603",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"description": "task 06-04: a function to send messages between specified emails",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
8
|
+
},
|
9
|
+
"repository": {
|
10
|
+
"type": "git",
|
11
|
+
"url": "git+https://github.com/moony-bilcherry/Node_5_sem.git"
|
12
|
+
},
|
13
|
+
"keywords": [
|
14
|
+
"m0603",
|
15
|
+
"belstu"
|
16
|
+
],
|
17
|
+
"author": "moony",
|
18
|
+
"license": "ISC",
|
19
|
+
"bugs": {
|
20
|
+
"url": "https://github.com/moony-bilcherry/Node_5_sem/issues"
|
21
|
+
},
|
22
|
+
"homepage": "https://github.com/moony-bilcherry/Node_5_sem#readme"
|
23
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{}
|
package/package.json
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"dependencies": {
|
3
|
+
"nodemailer": "^6.8.0"
|
4
|
+
},
|
5
|
+
"name": "m0603_evg_spr",
|
6
|
+
"version": "1.0.1",
|
7
|
+
"description": "Send email to me.",
|
8
|
+
"main": "m06-03.js",
|
9
|
+
"devDependencies": {},
|
10
|
+
"scripts": {
|
11
|
+
"test": "test"
|
12
|
+
},
|
13
|
+
"repository": {
|
14
|
+
"type": "git",
|
15
|
+
"url": "test"
|
16
|
+
},
|
17
|
+
"keywords": [
|
18
|
+
"Send",
|
19
|
+
"email",
|
20
|
+
"using",
|
21
|
+
"nodemailer."
|
22
|
+
],
|
23
|
+
"author": "Evgeny Super",
|
24
|
+
"license": "ISC"
|
25
|
+
}
|
Binary file
|