npm install -g firebase-tools
firebase login
firebase init
위 명령어를 입력해 firebase-cli를 설치한다
로그인 및 초기화를 해서 프로젝트, 기능을 초기화한다
이메일을 보낼때 nodemailer를 사용하기때문에 아래 명령어를 입력해서 설치한다
cd functions
npm install nodemailer
코드를 작성하기 이전에 메일을 보낼때 필요한 gmail계정을 준비한다.
이 계정은 2차인증 까지 되어있어야하며, 앱 비밀번호를 생성해 그 비밀번호를 기억해놓아야한다.
앱 비밀번호 생성법은 아래 링크를 참고하면된다.
[ETC] 구글 앱 비밀번호 발급 방법
https://myaccount.google.com/u/3/apppasswords 로그인 - Google 계정이메일 또는 휴대전화accounts.google.com위 링크를 타고 바로들어가지는지 모르겠다 아마 2중인증이 되어있으면 될지도모른다 Google 계
justdoooit.tistory.com
완료했다면 아래 코드를 입력해서 환경변수를 설정한다.
firebase functions:config:set gmail.email="your-email@gmail.com" gmail.password="앱 비밀번호"
functions를 체크하면서 초기화를 했다면 functions폴더가 생성되었을것인데
그 안에 index.js에 아래 코드를 추가한다.
const nodemailer = require('nodemailer');
// 환경 변수 가져오기
const gmailEmail = functions.config().gmail.email;
const gmailPassword = functions.config().gmail.password;
// Nodemailer 트랜스포터 생성
const mailTransport = nodemailer.createTransport({
service: 'gmail',
auth: {
user: gmailEmail,
pass: gmailPassword,
},
});
// 이메일 보내기 함수
exports.sendEmail = functions.https.onRequest((req, res) => {
const mailOptions = {
from: gmailEmail,
to: req.body.to,
subject: req.body.subject,
text: req.body.text,
};
mailTransport.sendMail(mailOptions, (error, info) => {
if (error) {
return res.status(500).send(error.toString());
}
return res.status(200).send('Email sent: ' + info.response);
});
});
작성이 완료되면 아래 코드로 배포를하고 사용하면된다.
cd functions
firebase deploy --only functions