Windows Server SMTP 메일 전송 설정





    SMTP 서버를 설치만 하나도 해서 메일을 보내지는 것이 아닙니다 권한 설정을 하기 위해선 SMTP 메일전송의 대한 로직을 대한 이해가 필요합니다.


    Windows에서 기본적으로 제공하는 "기본 SMTP 가상서버"를 이용하여 메일을 발송하는 경우에는 대부분 ASP또는 ASP.NET 프로그램일 것입니다.






     Windows Server SMTP 가상서버에 메일전송 이해하기





    관련글 :


    IIS8 SMTP 소개와 설치 : http://server-talk.tistory.com/123





    SMTP 메일서버를 통해 C:\inetpub\mailroot 안에 디렉토리 접근하게 됩니다.





    SMTP를 통해 메일을 발송하게 되면 pickup 폴더에 발송할 메일에 들어오게 되며, 받는 사람의 메일서버로 발송하게 됩니다.(SMTP를 중지시킨 상태에서 메일을 발송하는 프로그램을 실행시키면 Pickup 폴더에 폴더에 발송할 메일에 들어있는것을 확인할 수 있습니다.) 





    1차시도시 메일발송에 실패하게 되면 Queue 폴더에 있는 메일들은 "기본 SMTP 가상서버"의  배달 탭에 설정되어 있는 "다시 시도 간격"과 만료시간에 의해 처리됩니다.





    여러가지 이유로 메일 발송에 실패했을 경우 보내는 분의 메일 주소로 배달하지 못한 이유를 발송하게 되는데, 이 배달못함 보고서(NDR)를 보내는 사람 메일주소로 발송하지 못하였을 경우 Badmail 폴더에 쌓이게 됩니다. 



    주의 

    Badmail에 메시지가 많이 쌓이면 SMTP의 성능이 저하될 수 있으므로 주기적으로 Badmail 폴더의 파일들을 삭제해 주는 것이 좋습니다.






    메일 형식이 잘못된 경우에는 Drop 폴더에 메일이 쌓이게 됩니다.




    SMTP 메일서버 디렉토리

     

    Badmail : 받는사람에게 발송 실패 후 보내는 사람에게도 발송을 실패한 메세지가 보관되는 폴더

    Drop : 메일 형식이 잘못된 메세지가 보관되는 폴더

    Pickup : 처음 발송 시도될 메세지가 보관되는 폴더

    Queue : 1차 시도 실패시 다음 발송을 위해 메세지가 보관되는 폴더







     Windows Server SMTP 메일이 발송되지 않을 경우






    메일이 발송 되지 않을 경우

     

    1. 프로그램 상의 에러 확인하기

    2. 받는 사람의 메일주소 확인하기

    3. Windows SMTP 서버 작동여부 확인하기

    4. DNS 세팅이 잘되어 있는지 확인하기

    5. SMTP 메일서버 디렉토리 권한 설정 확인하기

    6. 방화벽 설정 확인하기

    7. SMTP 서버의 Relay설정 확인하기

    8. 특정 포탈에만 메일을 받지 못하는경우




    1. 프로그램상의 에러 확인기


    프로그램에 에러가 있을경우 에러메세지를 나오니 에러메세지로 확인하시기 바랍니다.



    2. 받는사람의 메일주소 확인하기


    받는사람의 메일이 올바르지 않을 경우 Drop 폴더에 메세지가 있을 가능성이 있습니다.



    3. Windows SMTP 서버 작동여부 확인


    SMTP 서버가 중지되어 있는지 여부를 확인하시기 바랍니다.




    좌측은 SMTP 서버가 중지되었을 경우이며, 우측은 실행된 상태입니다.




    4. DNS 세팅이 잘되어 있는지 확인하기


    서버의 설정된 DNS가 잘못되어 받는사람의 메일서버를 찾을수 없는 경우 실패하는 경우도 있으며, DNS서버(네임서버)가 설치되어 있다면 중지하시거나 제거하시기 바랍니다.




    5. SMTP 메일서버 디렉토리 권한 설정 확인하기


    mailroot 폴더의 권한설정이 변경되면서 메일이 발송되지  않는 경우가 있습니다. 




    mailroot의 디렉토리 권한을 설정하셔야 되는데 Everyone, IIS_USERS, Users의 권한을 적절하게 설정하시기 바랍니다.




    6. 방화벽 설정 확인하기


    방화벽에서 서버에서 발송되는 25번포트의 패킷을 차단하고 있는지 확인하시기 바랍니다.




    7. SMTP 서버의 Relay설정 확인하기


    SMTP 서버의 Relay설정이 있다면 스팸메일의 Relay서버로 악용될 소지가 있습니다 또한 이로 인하여 서버의 성능이 저하되는 원인이 되고도 하며 악의적인 스팸메일을 발송하는 과정에서 메일이 계속 밀리며 발송되지 않는 경우가 발생합니다.




    릴레이제한에서 위의 그림과 같이 아래 목록만 선택하시고 다른 서버에서는 접근하지 못하도록 차단하시기 바랍니다.




    8. 특정 포탈에만 메일을 받지 못하는경우


    다른 메일은 잘 발송되고 있는데 특정 포탈 사이트에서만 메일을 받지 못하는 경우가 많이 있습니다 각 포탈 사이트들에서는 각기 다른 스팸메일 정책을 가지고 있으며 점점강화되고 있습니다.

    거의 대부분의  포탈사이트에서는 한 IP에서 대량의 메일이 발송될 경우 해당 IP를 스팸메일 발송 서버로 등록하여 자동 차단하는 경우가 있습니다 이 문제를 해결하기 위해서는 RBL 사이트에 블랙리스트로 등록 되어 있는지 확인 필요합니다.



    RBL이란?


    RBL(Real-time Blocking Lists)은 스팸발송 내역이 있는 IP를 모아 놓았으며, 효과적인 스팸메일 차단을 위해 RBL에 등록되어 있는 IP에서 발송되는 메일은 수신 하지 않고 있습니다 요즘 대부분의 업체들이 스팸메일 차단을 위해 RBL 서비스를 이용하고 있으며, RBL을 통해 높은 차단 효과를 얻고 있습니다.


    정상적으로 메일을 발송하기 위해서는 차단되어 있는 IP를 RBL에서 해제하는 절차를 진행하셔야 합니다.



    메일서버 스팸 IP 차단 등록 확인및 해제신청 사이트


    한국인터넷진흥원 RBL : https://www.kisarbl.or.kr/


    해외 스팸하우스 RBL : https://www.spamhaus.org/




    Posted by 서버이야기