Newer
Older
2023-ryuei / system / login / server.js
const express = require('express');
const nodemailer = require('nodemailer');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.json());
app.use(express.static('public'));

const smtpTransport = nodemailer.createTransport({
    service: 'Gmail',
    auth: {
        user: 'admsscms23@gmail.com',
        pass: 'zpkh lpda nrum hwsu'
    }
});

// POSTリクエストの処理
app.post('/sendMail', (req, res) => {
  const { email, cardText } = req.body;

  let message = '';
  let file = '';

  if (cardText === 'Card1') {
    message = 'Card1 が選択されました。https://drive.google.com/drive/folders/1iidBp8z-c-7_9ABYoxzb2F_3BAnYMq4t?usp=sharing';
    file = {
      filename: 'イベント用スプレッドシート',
      path: 'public/index.html'
    }
  } else if (cardText === 'Card2') {
    message = 'Card2 が選択されました。https://drive.google.com/drive/folders/1iidBp8z-c-7_9ABYoxzb2F_3BAnYMq4t?usp=sharing';
    file = {
      filename: 'グルメ用スプレッドシート',
      path: 'public/index.html'
    }
  }

  const mailOptions = {
      from: 'admsscms23@gmail.com',
      to: email,
      subject: 'スプレッドシート送付',
      text: message,
      attachments: [file]
  };

  smtpTransport.sendMail(mailOptions, (error, response) => {
      if (error) {
          console.log('メール送信エラー:', error);
          res.status(500).json({ message: 'へのメールの送信に失敗しました' });
      } else {
          console.log('メールが送信されました:', response.response);
          res.json({ message: 'にメールが送信されました' });
      }
  });
});

// GETリクエストの処理
app.get('/', (req, res) => {
  res.sendFile(__dirname + '/public/index.html');
});

const port = 3000;
app.listen(port, () => {
    console.log(`サーバーがポート ${port} で起動しました`);
});