콘텐츠로 이동

2021 12 20

2021-12-20

Email Verification API

  • 참고 1: https://geekflare.com/email-verification-api/
  • 참고 2: https://emailverification.whoisxmlapi.com/api/documentation/making-requests
  • 응답 양식
    {
        "username": "cstoday",
        "domain": "cstoday.me",
        "emailAddress": "cstoday@cstoday.me",
        "formatCheck": "true",
        "smtpCheck": "true",
        "dnsCheck": "true",
        "freeCheck": "false",
        "disposableCheck": "false",
        "catchAllCheck": "false",
        "mxRecords": [
            "aspmx.daum.net.",
            "alt.aspmx.daum.net."
        ],
        "audit": {
            "auditCreatedDate": "2021-12-20 07:42:20 UTC",
            "auditUpdatedDate": "2021-12-20 07:42:20 UTC"
        }
    }
    

    - formatCheck : 이메일 주소 양식에 에러가 없는지 확인 - smtpCheck : 이메일 주소가 존재하고, SMTP 커넥션을 통해 이메일을 받을 수 있는지 확인 - true = 이메일이 존재하고, SMTP를 통해 메일 받을 수 있음 - false = 이메일 주소가 존재하지 않거나 SMTP로 메일 못받는 경우 - disposableCheck : 이메일 주소가 일회용인지 확인 - catchAllCheck : 포괄적 주소가 있는지 확인

SMTP (Simple Mail Transfer Protocol)

  • 참고: https://sendgrid.com/blog/what-is-an-smtp-server/
  • SMTP 서버 - 주소는 일반적으로 smtp.serveraddress.com 형식 - SMTP 서버가 메일을 처리하고, 메시지를 보낼 서버를 결정함 - Gmail 등이 메시지 다운로드하여 받는 사람의 받은 편지함에 뚝딱 넣어줌 - SMTP 서버가 없다면 이메일이 목적지에 도착하지 않음! - 메일 "보내기" 누르기 => 이메일이 코드 문자열로 변환 => SMTP 서버로 전송 => SMTP 서버에서 코드 처리 => 메시지 전달

지메일 스팸 멈춰!

  • 스팸이 되는 이유 - 수신자의 행동 학습: 어떤 이메일을 스팸으로 분류했다면, 메일의 특성 기억해 유사 필터링
  • 스팸 필터 피하기 1. 스팸메일로 오인할 표현 자제 ("무료!", "꽁짜!", "100%!" 등) 2. 텍스트 없이 한장의 큰 이미지 X 3. 답장 받을 수 있는 진짜 이메일 주소 사용하기
  • 지메일의 강력한 스팸 정책 - 단체 메일 보낼때 일관된 IP 주소 사용하기 - DKIM으로 서명하기 - DMARC 정책 게시
  • 결국 중요한 건 SPF, DKIM, DMARC를 적용해주고 DNS 레코드에 추가하는 것!!!!

SPF 레코드

  • 참고: https://firecatlibrary.tistory.com/135
  • 참고: https://cublip.tistory.com/325
  • 특정 도메인이 DNS 서버에 자신의 메일 서버 등록, 메일 수신자가 발송 서버 검증 - google.com으로 부터 메일 발송되었을 때, 메일 발송지가 11.11.11.11 인 경우 - 진짜 11.11.11.11이 google.com으로 부터 온 메일 맞아? - DNS 서버에 이 Ip로의 메일 보낸것 google.com꺼 맞아요~ 등록하기 - 이걸 SPF 레코드라하고, TXT 레코드로 등록할 수 있다.
  • 방법 - 다음 스마트워크에서 TXT 레코드에 등록 v=spf1 include:_spf.daum.net ~all - 아니면 직접 ip로 등록해도 됨 v=spf1 ip4:12.34.56.78 ~all

DKIM (DomainKeys Identified Mail)

  • 참고: https://samsikworld.tistory.com/469
  • 메일이 전송 중에 다른사람에 의해 변조되지 않았는지 검증 - 중간에 변조되어 스팸되면 안대 - DKIM은 수신자가 메일 받고 변조 되지 않았음을 확인
  • 절차 - privKey, pubKey로 설정 1. 도메인이 메일 발송할 때 privKey로 해시값 만들고 이를 헤더에 넣음 2. 메일 수신 서버가 메일 받으면 발송자의 도메인 DNS의 pubKey로 복호화 3. 메일 변조되었는지 확인 가능

DMARC

  • 참고: https://samsikworld.tistory.com/488**
  • DMARC란? - 이메일 인증 프로토콜 - 이메일 도메인 소유자가 무단 사용으로 부터 도메인 보호하기 위함 - SPF와 DKIM과 함께 동작
  • 발신자 정보 위조하는 spoofing 방지 - SPF와 DKIM에 Reporting 추가한 방식 - DMARC를 통해 하루에 한 번 종합 보고서를 받음 - 보고서는 XML로 보내지고, 해당 도메인의 메일이 DMARC 인증 절차 통과했는지 알려줌 1. 메일이 제대로 된 곳에서 왔는지 2. 메일이 위변조 되지 않았는지 검증
  • 수신메일서버에서 정해진 비율에 대한 보고서를 발송 - DNS에 TXT 한 줄 추가하자 - 도메인 명이 cstoday.me라면... - name: '_dmarc.cstoday.me' - value: 'v=DMARC1;p=quarantine;pct=25;rua=mailto:cstoday@cstoday.me' - 25% 샘플로 지정된 메일주소로 보고서 받는다는 뜻