티스토리 뷰

공부 이야기

[JSP] 이메일 보내기1

판다(panda) 2011. 9. 2. 00:01
전 착하니까.. 낚시하지 않고 결론부터 쓰고 시작하겠습니다..

우선 제가 원한 방향까진 못갔습니다.. 100을 퍼펙트라고 하면 대충 75 정도 되는것 같습니다..

그 이유는 이메일 보내기를 글을 진행하면서 설명해드리고.. 저는 나머지 25을 완성하겠습니다..

원하시는 것만 쏙쏙 빼가셔도 됩니다.. 아니면 저와 같이 게시판에 이어 이메일 프로그램도 만들어보던가요..

우선 메일 발송 화면입니다..
저는 우선 이렇게 구성을 해봤습니다..


보내는 사람은 저 하나이기 때문에.. 보내는 사람이 없는데.. 보내는 사람 추가하는 방법은 쉬우니까..
진행하면서 설명해드릴께요..

제목, 내용은 있어야 하고(당연한거죠;).. 수신대상은 전체, 그룹, 개인을 나눠서 보낼겁니다..

템플릿은 배경화면등이나 html 을 집어 넣어서 꾸며주기 위해서 넣어봤는데.. 안됩니다;.. 저게 안되는것 10 입니다..

다음은 주소록입니다..

우선 테스트 하느라.. 회사메일부터 제가 가지고 있는 이메일을 다 등록했습니다..



자세하게 보시면 구글 대문자가 있는데.. 제가 소문자, 대문자 구분해서 DB에 저장을 해서 2가지가 다 들어갔는데..
이것도 진행하면서 소문자로 저장하기로 바꿀겁니다.. 이게 안되는것 5입니다..
 
여기서 +알파를 하자면.. 중복되는 이메일 그러니까 동일 인물일때 확인하고 삭제하는 것도 만들어 볼 생각입니다..
우선 25 완료하고 나서겠지만요;..

다음은 그룹 관리입니다.. 그룹을 생성하고.. 그 그룹에 이메일 추가.. 발송할때 그룹선택시 그룹에 있는 이메일들에게..
메일이 전송되게 만드려고 합니다..
여기서 안되는것 10이 있는데요.. 체크박스를 이용해서 그룹 추가를 한번에 하려고 했는데.. 요게 잘 안되더라구요..
이것도 진행하면서 고치도록 하겠습니다..
우선은 한개씩은 그룹에 추가하도록 해놨습니다.. 그룹에 100명 추가할때 100번 등록 눌러야한단 소리죠;..



마지막으로 통계.. 메일을 보냈을때.. 몇건의 메일을 보냈는지.. 상대방이 수신을 했는지.. 수신했으면 누가 수신했는지..
날짜별로 나누고, 상대방의 수신 여부를 확인 할 수 있는 메뉴를 만들겁니다..



메뉴 구성은 대충 이정돕니다..

자 이제 메뉴에 맞는 DB 테이블을 만들어봅시다..

우선 메일 발송 테이블입니다..
MAIL_SEND 란 이름으로 만들었습니다..

CREATE TABLE MAIL_SEND
(
  EMAIL_SEQ      NUMBER                         NOT NULL,
  EMAIL_SUBJECT  VARCHAR2(100 BYTE)   NOT NULL,
  EMAIL_MEMO     VARCHAR2(4000 BYTE),
  SEND_GUBUN     NUMBER,
  GROUP_SEQ      NUMBER,
  EMAIL_ADDR     VARCHAR2(50 BYTE),
  SEND_DATE      DATE                           DEFAULT sysdate               NOT NULL
)


순서대로 이메일 발송 번호, 이메일 제목, 이메일 내용, 수신자 구분, 그룹 구분, 이메일 주소, 발송시간으로 해봤습니다..

수신자 구분은 전체, 그룹, 개인을 구별하기 위해 넣어봤구요..

PRIMARY KEY 값은 이메일 발송 번호입니다..

제가 테이블, 쿼리 제작하는데 있어서 숙련되었다면.. 더 간단하게 만들었을텐데..
다들 아시겠지만.. 저도 배우는 입장에서 혼자 책보고 공부하는거라 어쩔수없습니다 ㅎㅎ..

그룹 구분은 그룹이 여러개있을때 그 그룹을 구분하기 위해 넣었구요..
이메일 주소를 따로 넣은것은 개인으로 보낼때 다른것 필요없이 보내려고 넣어봤습니다..


다음은 수신자 정보 저장하는 테이블입니다..

CREATE TABLE MAIL_USER
(
  USER_SEQ       NUMBER                         NOT NULL,
  USER_EMAIL     VARCHAR2(50 BYTE)              NOT NULL,
  USER_NAME      VARCHAR2(50 BYTE)              NOT NULL,
  USER_CORP      VARCHAR2(50 BYTE)              NOT NULL,
  USER_HPNO      VARCHAR2(20 BYTE),
  USER_TELNO     VARCHAR2(20 BYTE),
  USER_HOMEPAGE  VARCHAR2(50 BYTE),
  USER_INFO      VARCHAR2(100 BYTE),
  REG_DATE       DATE                           DEFAULT sysdate               NOT NULL
)


순서대로 유저 순번, 이메일, 이름, 회사, 핸드폰, 전화, 홈페이지, 기타 정보 를 넣어봤습니다..

여기서 PRIMARY KEY 값은 유저 순번이겠죠?..
그리고 중복 방지를 위해 이메일주소도 KEY값으로 설정해줍니다..


그리고 이번엔 그룹 테이블을 만들어봅시다..

CREATE TABLE MAIL_GROUP
(
  GROUP_SEQ   NUMBER                            NOT NULL,
  GROUP_NAME  VARCHAR2(100 BYTE)                NOT NULL,
  GROUP_INFO  VARCHAR2(100 BYTE),
  REG_DATE    DATE                              DEFAULT sysdate               NOT NULL
)


그룹 번호, 그룹이름, 그룹정보를 넣었구요..
PRIMARY KEY 값은 그룹 번호입니다..


이 그룹에는 이름, 정보만 들어가기때문에 그룹에 속한 사람을 넣기 위한 테이블을 하나 더 만들었습니다..

CREATE TABLE MAIL_GROUP_INFO
(
  GROUP_SEQ  NUMBER                             NOT NULL,
  USER_SEQ   NUMBER                             NOT NULL
)


여기선 그룹 번호와 유저 번호만 저장하게 만들어서 쿼리에서 참조할 수 있게 만들었습니다..
PRIMARY KEY 값을 두개다 줘야 중복이 안됩니다.. 저는 한개만 줬다가 중복되서 메일이 여러개 날라가더군요 ㅎㅎ;..


마지막으로 매일 수신 확인 테이블 입니다..

CREATE TABLE MAIL_RECEIVE
(
  RECEIVE_NO    NUMBER                          NOT NULL,
  USER_EMAIL    VARCHAR2(50 BYTE)               NOT NULL,
  EMAIL_SEQ     NUMBER                          NOT NULL,
  RECEIVE_DATE  DATE                            DEFAULT sysdate               NOT NULL
)


수신 번호, 수신한 사람 이메일, 발송번호, 수신 시간을 넣어줬습니다..

PRIMARY KEY 값으로는 수신 번호, 발송 번호를 정해줬습니다..
이것도 한개만 줬다가 중복되서 메일을 또 읽으면 또 저장되더군요 ㅎㅎ;..

저는 이것 저것 꾸며주기 위해서 버튼도 만들어봤구요.. 뒤에 깔수 있는 배경이미지도 만들어 넣어봤는데..

메뉴바 저런것 까지 다 하려면.. 엄청 귀찮기 때문에..
저번 게시판 만들기 처럼.. 깔끔하게 흰색 바탕에 글씨만 넣겠습니다 ㅎㅎ..

게시판 만들고 약 2개월만에 올리네요..

혼자 쌩 기초도 없이 하려니까 이메일 발송,확인,주소록 만드는데 2개월씩이나 걸린겁니다;..
기초가 부족하다 보니.. 검색만 수백번은 한것 같네요..

그럼 다들 JSP 공부 열심히 하세요..

참고로 테이블은 도중에 수정될 수 있습니다;..

저작권 표시 꼭!.. 상업적 이용 절대 불가!.. 컨텐츠 변경 안됨!..