포트폴리오 작업을 하다보니 좀더 "프로페셔널"한 느낌을 주는 contact page를 만들고 싶어졌다.
서버 없이 간단하게 메일 전송 기능 구현을 도와주는 프로그램인 EmailJS를 사용하여 contact page를 구현해보았다.
(자 따라해볼까요~?)
사용하려는 이메일 주소를 등록하면, 아래와 같이 Service ID가 생성된다.
나중에 이 ID를 사용하여 웹페이지와 이메일을 연결할 예정으로 잊어버리지 말자⭐️
EmailJS Doc : https://www.emailjs.com/docs/
연결하는 방법은 위의 공식 문서를 보면서 따라하면 금방 완성 가능하다!
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/emailjs-com@2/dist/email.min.js"></script>
<script type="text/javascript">
(function() {
// 아래에다가 API ID를 입력합니다
emailjs.init("API ID 입력");
})();
</script>
<script type="text/javascript">
window.onload = function() {
document.getElementById('contact-form').addEventListener('submit', function(event) {
event.preventDefault();
this.contact_number.value = Math.random() * 100000 | 0;
// 아래의 두곳에 각각 서비스아이디, 이메일 템플릿을 입력합니다
// 서비스 아이디는 Email Services탭에서 본 ID를 입력해주면 된다
emailjs.sendForm('서비스아이디', '이메일 템플릿', this)
.then(function() {
console.log('SUCCESS!');
}, function(error) {
console.log('FAILED...', error);
});
});
}
</script>
이메일 템플릿 ID의 경우 Email Templates 아랫 부분에서 확인 가능하다.
이렇게 기재만 하면 연결은 완료다😊
아래의 이메일 템플릿을 다시 보면, to_name
, from_name
, message
이렇게 3가지의 인자가 필요하다는 것을 알 수 있다.
이메일 템플릿을 보고나서 아래의 code에 각각 알맞은 name
을 입력해준다
<form id="contact-form">
<input type="hidden" name="contact_number">
<label>Name</label>
// 메일 작성하는 사람의 이름을 입력하는 곳이기에 from_name으로 설정
<input type="text" name="from_name">
<label>Email</label>
// 원래는 from_email로 name바꿔주면 되는데 personal services에서는 default email address밖에 못써서 그대로 두었다.
<input type="email" name="user_email">
<label>Message</label>
// message가 들어가는 부분이니까 name = "message"로 작성
<textarea name="message"></textarea>
<input type="submit" value="Send">
</form>
위와 같이 form
을 이메일 템플릿과 맞춰 주었으면 이제 EmailJS를 사용할 수 있다!
위와 같이 기재하여 이메일을 보내면, 아래와 같이 메일함에 들어오는 것을 확인할 수 있다.
이렇게 서버구축없이 간단히 email 발신 form을 만들어보았다😊
구현된 포트폴리오를 보고 싶다면 : https://hjkdw95.github.io/portfolio/ 여기로 꼬우꼬우!