email.controller.js 1.54 KB
Newer Older
Jiwon Yoon's avatar
Jiwon Yoon committed
1
2
3
import nodemailer from "nodemailer"

const SendMail = async (req,res) => {
Jiwon Yoon's avatar
Jiwon Yoon committed
4
    const {email, title, cinema,selectedTheater, time, name} = req.body
5
    const selectedSeats = req.body.selectedSeats
Jiwon Yoon's avatar
Jiwon Yoon committed
6
    const sendMail = async (email,title, cinema,selectedTheater, time, name, selectedSeats) => {
Jiwon Yoon's avatar
Jiwon Yoon committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        // 메일을 전달해줄 객체
        const transporter = nodemailer.createTransport({
          host: 'smtp.gmail.com',
          port: 465,
          secure: true,
          auth: {
            type: "OAuth2",
            user: "angelayoon99@gmail.com",
            clientId: process.env.GMAIL_CLIENTID,
            clientSecret: process.env.GMAIL_CLIENTSECRET,
            refreshToken: process.env.GMAIL_REFRESH_TOKEN,
          },
          tls: {
            rejectUnauthorized: false,
          },
        });
      
        // 메일 옵션
        const mailOptions = {
26
27
28
          from: `${cinema} <angelayoon99@gmail.com>`,
          to: `${email}`,
          subject: `${cinema} 예매확인내역: ${title}`,
Jiwon Yoon's avatar
Jiwon Yoon committed
29
          text: `${name}님의 예매: ${title} / ${cinema} / ${selectedTheater}관 / 일시: ${time} / ${selectedSeats} /`,
Jiwon Yoon's avatar
Jiwon Yoon committed
30
31
32
33
34
35
36
37
38
39
40
41
        };
      
        // 메일 전송
        try {
          const mailResult = await transporter.sendMail(mailOptions);
          console.log(`Mail sent - ID : ${mailResult.messageId}`);
        } catch (err) {
          console.log("Mail Sending Failuer.");
          console.log(err);
        }
      }
      
Jiwon Yoon's avatar
Jiwon Yoon committed
42
      sendMail(email,title, cinema,selectedTheater, time, name, selectedSeats);
Jiwon Yoon's avatar
Jiwon Yoon committed
43
44
45
46
}


export default { SendMail }