gitHub : https://github.com/leeyulgok/yulgok-page
- Firebase에서 Blaze요즘제로 가입하기.
(+ Blaze 요즘제는 일정 부분은 무료로 사용하다가 이용량이 많아지면 사용한만큼 요금을 지불하는 형식이다. Firebase에서 Function을 사용하려면 요금제를 사용해야 한다.)- Firebase CLI 설정하기.
- SendGrid 가입하고 API Key 받기.
- SendGrid API Key를 Firebase Function에 연결하기.
- 리액트와 Firebase 연결하기.
- 사용자가 Form에서 내용을 입력하고 Submit을 한다.
- 값이 Firebase Fetch/URL에 연결된다.
- Firebase 코드가 연결되며, SendGrid에 값을 보낸다.
- SendGrid에서 메일을 전송한다.
(아무나 좋으니 이 부분을 해결해주시면 감사하겠습니다...)
sendMail.js
const functions = require("firebase-functions");
const cors = require('cors')({ origin: true });
const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(functions.config().sendgrid.key);
exports.sendEmail = functions.https.onRequest((req, res) => {
cors(req, res, () => {
const { email, name, phone, message } = req.body;
const mailOptions = {
from: '',
to: '',
replyTo: email,
subject: `Message from ${name}`,
text: `Name: ${name}\nPhone: ${phone}\nMessage: ${message}\nEmail: ${email}`,
html: `<p>Name: ${name}</p><p>Phone: ${phone}</p><p>Message: ${message}</p><p>Email: ${email}</p>`
};
return sgMail.send(mailOptions)
.then(() => {
console.log('Email sent');
console.log(mailOptions);
res.status(200).send('Email sent');
})
.catch((error) => {
console.error('Error sending email:', error);
res.status(400).send(error);
});
});
});
본 후기는 유데미-스나이퍼팩토리 10주 완성 프로젝트캠프 학습 일지 후기로 작성 되었습니다.
#프로젝트캠프 #프로젝트캠프후기 #유데미 #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #리액트 #react #부트캠프 #리액트캠프