티스토리 뷰

스프링프레임웍의 JavaMailSenderImpl을 이용해서 메일을 발송하는 방법에 대해 알아 보겠습니다. 


우선 천리길도 한걸음 부터..


가장 중요한 smtp 서버와 연결하고 메일이 잘 가는지 테스트 부터 하고 가는게 좋지 않겠습니까..


급할수록 돌아가라.. ㅡㅡ;;


요새는 방화벽등도 많아서 cmd 창에서 테스트 부터 하고 가는게 좋을듯..


서버가 릴레이를 허용하는 경우에는 그 메일 서버에 계정이 없더라도 메일을 발송할 수 있습니다. 


이렇게 릴레이를 허용하는 경우 타인에 의해 스팸 메일을 보내는데 악용이 될 수 있으므로 특정 IP에서만 릴레이가 되도록 하는게 일반적입니다.


릴레이를 허용하는 서버의 경우 명령창에서 telnet 명령으로 간단하게 메일 발송을 테스트 해볼 수 있습니다. 


다음은 Microsoft IIS 메일서버를 이용해서 명령창으로 메일을 발송하는 예 입니다. 


나오는 메세지는 서버에 따라 다를 수 있습니다.


윈도우의 cmd 창을 열어서


C:\>telnet smtp.yourdomain.co.kr 25

220 Server_Hostname Microsoft ESMTP MAIL Service, Version: ...
HELO localhost
250 Server_Hostname Hello [xxx.xxx.xxx.xxx]
MAIL FROM: 보내는_사람_메일주소
250 2.1.0 보내는_사람_메일주소....Sender OK
RCPT TO: 받는_사람_메일주소
250 2.1.5 받는_사람_메일주소
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Subject: 여기에 메일 제목이 옵니다.

메일내용이 여기에 옵니다.
.
250 2.6.0 <xxxxxx@smtp_hostname> Queued mail for delivery

이스케이프 문자: 'CTL+]'
Microsoft Telnet> quit

 

DATA 명령후에 Subject: 다음에 제목을 작성하고 엔터키를 두번 누릅니다. 


메일 내용을 작성한 후 라인의 첫글자로 마침표(.) 를 입력하고, 바로 엔터키를 누르면 내용 작성이 끝났다는 표시 입니다.


HELLO 인지 알고 쳤는데 HELO 가 맞습니다..


텔넷에서 빠져나오기 위해서 'CTRL + ]' 를 누르고 Telnet 프롬프트가 나오면 quit를 입력하여 종료합니다.


Queued mail for delivery 라고 나오면 메일이 갔다.



참조:

https://offbyone.tistory.com/167



Microsoft SMTP가 아닌 다른 SMTP 서버에서 했을경우도 살펴보면


cmd 창을 열고


C:\>telnet ip주소 25


220 Server_Hostname ESMTP MAIL ...

HELO localhost

250 OK

MAIL FROM: 보내는_사람_메일주소

250 2.1.0 Sender <보내는_사람_메일주소> Ok

RR

500 5.5.2 Syntax error, unrecognized command[RR]

RCPT TO: 받는_사람_메일주소

250 2.1.0 Recipient <받는_사람_메일주소> Ok

DATA

354 Start mail input; end with <CRLF>.<CRLF>

Subject: 여기에 메일 제목이 옵니다.


메일내용이 여기에 옵니다.

.

250 2.5.0 Message accepted for delivery


이렇게 뜨고 한 5초~10초 있다가 메일이 왔다.


위에 RR은 일부러 에러를 내봤다.

그럼 에러 코드와 이유가 500 5.5.2 Syntax error ... 온다.

다시 제대로 치니까 250 이 왔다. 250 이면 정상인것 같다^^

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함