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: https://blog.stibee.com/%EB%82%B4%EA%B0%80-%EB%B3%B4%EB%82%B8-%EC%9D%B4%EB%A9%94%EC%9D%BC%EC%9D%B4-%EC%8A%A4%ED%8C%B8%EB%A9%94%EC%9D%BC%EB%A1%9C-%EB%B6%84%EB%A5%98%EB%90%9C%EB%8B%A4%EB%A9%B4-cd4e2ef93bad
- 참고 2: https://support.google.com/mail/answer/81126
- 필요한 기술적 조치 - DKIM 서명 - SPF 레코드 - DMARC 레코드 - KISA WHITE DOMAIN 등록
- 스팸이 되는 이유 - 수신자의 행동 학습: 어떤 이메일을 스팸으로 분류했다면, 메일의 특성 기억해 유사 필터링
- 스팸 필터 피하기 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% 샘플로 지정된 메일주소로 보고서 받는다는 뜻