diff --git a/.gitignore b/.gitignore index ce60c7eb72c08685664b73c5d0909f52631a1c88..b20c624e626c142c60dab3a5aae84467f909d72d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ **/node_modules -**/sessions \ No newline at end of file +**/sessions +**/frontend/package-lock.json +**/frontend/package.json diff --git a/backend/app.js b/backend/app.js index 81d1bf673f525aa03d1f2aed029205e276a53d41..2ec4475fe66ed3b7cbcd2229621ff9a62c73bbfe 100644 --- a/backend/app.js +++ b/backend/app.js @@ -10,6 +10,7 @@ var FileStore = require("session-file-store")(session); var bookRouter = require("./routes/books"); var loginRouter = require("./routes/login"); +var emailRouter = require("./routes/emails"); var app = express(); @@ -45,6 +46,7 @@ app.use(express.static(path.join(__dirname, "public"))); app.use("/api/books", bookRouter); app.use("/api/login", loginRouter); +app.use("/api/emails", emailRouter); // catch 404 and forward to error handler app.use(function(req, res, next) { diff --git a/backend/package-lock.json b/backend/package-lock.json index 3d3dca925cd7e58c54ad564f7e04b2abe0e7bcec..3b4c6fa8649092049176553d76937baef6a49e48 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -738,6 +738,11 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "nodemailer": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.0.tgz", + "integrity": "sha512-UBqPOfQGD1cM3HnjhuQe+0u3DWx47WWK7lBjG5UtPnGOysr7oDK5lNCzcjK6zzeBSdTk4m1tGx1xNbWFZQmMNA==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", diff --git a/backend/package.json b/backend/package.json index 4d65a8a1889da3542e030cb682ded233098427e5..c264c6bb22afe483735ad93311974b3fd48ed987 100644 --- a/backend/package.json +++ b/backend/package.json @@ -16,6 +16,7 @@ "mongoose": "^5.7.12", "morgan": "~1.9.1", "pug": "2.0.0-beta11", - "session-file-store": "^1.3.1" + "session-file-store": "^1.3.1", + "nodemailer": "^6.4.0" } } diff --git a/backend/routes/emails.js b/backend/routes/emails.js new file mode 100644 index 0000000000000000000000000000000000000000..40d50c1caf1d672d8ccdc67acd2042fa24d78d46 --- /dev/null +++ b/backend/routes/emails.js @@ -0,0 +1,33 @@ +const express = require('express'); +const nodemailer = require('nodemailer'); +const router = express.Router(); + +router.get("", function(req, res, next){ + let email = "hj950000@ajou.ac.kr" + + let transporter = nodemailer.createTransport({ + service: 'gmail', + auth: { + user: 'majorbook202@gmail.com', // gmail 怨꾩젙 �꾩씠�붾� �낅젰 + pass: 'dnjfdydlf' // gmail 怨꾩젙�� 鍮꾨�踰덊샇瑜� �낅젰 + } + }); + + let mailOptions = { + from: 'majorbook202@gmail.com', // 諛쒖넚 硫붿씪 二쇱냼 (�꾩뿉�� �묒꽦�� gmail 怨꾩젙 �꾩씠��) + to: "hj950000@ajou.ac.kr", // �섏떊 硫붿씪 二쇱냼 + subject: 'MajorBook援щℓ�붿껌�� �ㅼ뼱�붿뒿�덈떎.', // �쒕ぉ + text: '�щ━�� 梨� ~~�� ���� 援щℓ�붿껌�� �꾩갑�덉뒿�덈떎. �대떦 援щℓ�먯쓽 �꾪솕踰덊샇�� ~~�낅땲��.' // �댁슜 + }; + + transporter.sendMail(mailOptions, function(error, info){ + if (error) { + console.log(error); + } + else { + console.log('Email sent: ' + info.response); + } + }); +}) + +module.exports = router; \ No newline at end of file diff --git a/frontend/src/components/BookSearchPage.vue b/frontend/src/components/BookSearchPage.vue index c8dedcf18a40b69d3b0d7f7de2cd8cdde3baaacc..fa52caf4f77a6b5eb315946c216fbecd1447f322 100644 --- a/frontend/src/components/BookSearchPage.vue +++ b/frontend/src/components/BookSearchPage.vue @@ -69,7 +69,7 @@ <!-- =============�쒗룷�곗쫰 submit �묒떇 ================== --> <div> <md-dialog :md-active.sync="active" style="width : 500px; height: 1000px "> - <md-dialog-title>�쒗룷�곗쫰 �좎껌</md-dialog-title> + <md-dialog-title>�먮ℓ�꾩꽌 �깅줉</md-dialog-title> <md-field class="select"> <label>梨낆젣紐�</label> <md-input v-model="submit.title"></md-input> diff --git a/frontend/src/components/home.vue b/frontend/src/components/home.vue index e487846b68643905e62199e0a44cd424c7468cbe..eb70fd6b45bef6537d6ad4e67c6ed84120e5e10c 100644 --- a/frontend/src/components/home.vue +++ b/frontend/src/components/home.vue @@ -13,14 +13,25 @@ <script> import Hotlist from "./home_hotlist/HotList"; export default { + created() { + this + .$http + .get('/api/emails') + .then(response => { + console.log("Sending Success") + }) + }, + data() { return {}; }, components: { - Hotlist }, - methods: {} + methods: { + + + } }; </script> diff --git a/frontend/src/components/profilecomponent/buylist.vue b/frontend/src/components/profilecomponent/buylist.vue index cfa6463c9fbc70110af2380b6d2a2cb34e7f9f87..60e76dd8c1621506531765564cbbfb7fb1713f24 100644 --- a/frontend/src/components/profilecomponent/buylist.vue +++ b/frontend/src/components/profilecomponent/buylist.vue @@ -20,6 +20,70 @@ </md-button> </md-list-item> <md-divider></md-divider> + <md-list-item> + <md-button class="md-icon-button md-raised" style="color:#1DDB16;backgroundColor:#1DDB16"> + <img src="../../assets/book-open-flat.png" /> + </md-button> + <div class="md-list-item-text"> + <span> 梨� �쒕ぉ</span> + <span> 援щℓ ��湲곗쨷</span> + </div> + <md-button class="md-icon-button md-raised md-accent"> + <img src="../../assets/x-512.png" /> + </md-button> + <md-button class="md-icon-button md-raised md-primary"> + <img src="../../assets/check-icon.png" /> + </md-button> + </md-list-item> + <md-divider></md-divider> + <md-list-item> + <md-button class="md-icon-button md-raised" style="color:#1DDB16;backgroundColor:#1DDB16"> + <img src="../../assets/book-open-flat.png" /> + </md-button> + <div class="md-list-item-text"> + <span> 梨� �쒕ぉ</span> + <span> 援щℓ ��湲곗쨷</span> + </div> + <md-button class="md-icon-button md-raised md-accent"> + <img src="../../assets/x-512.png" /> + </md-button> + <md-button class="md-icon-button md-raised md-primary"> + <img src="../../assets/check-icon.png" /> + </md-button> + </md-list-item> + <md-divider></md-divider> + <md-list-item> + <md-button class="md-icon-button md-raised" style="color:#1DDB16;backgroundColor:#1DDB16"> + <img src="../../assets/book-open-flat.png" /> + </md-button> + <div class="md-list-item-text"> + <span> 梨� �쒕ぉ</span> + <span> 援щℓ ��湲곗쨷</span> + </div> + <md-button class="md-icon-button md-raised md-accent"> + <img src="../../assets/x-512.png" /> + </md-button> + <md-button class="md-icon-button md-raised md-primary"> + <img src="../../assets/check-icon.png" /> + </md-button> + </md-list-item> + <md-divider></md-divider> + <md-list-item> + <md-button class="md-icon-button md-raised" style="color:#1DDB16;backgroundColor:#1DDB16"> + <img src="../../assets/book-open-flat.png" /> + </md-button> + <div class="md-list-item-text"> + <span> 梨� �쒕ぉ</span> + <span> 援щℓ ��湲곗쨷</span> + </div> + <md-button class="md-icon-button md-raised md-accent"> + <img src="../../assets/x-512.png" /> + </md-button> + <md-button class="md-icon-button md-raised md-primary"> + <img src="../../assets/check-icon.png" /> + </md-button> + </md-list-item> + <md-divider></md-divider> </md-list> </div> </template>