logo
logo
백엔드
AWS SES
개발자가 모든 애플리케이션 안에서 이메일을 보낼 수 있는 경제적이고, 유연하며, 확장 가능한 이메일 서비스
사용 기업
금융/보험
이커머스
기타
소셜/컨텐츠
교육
인공지능
여행
블록체인
모빌리티
부동산/인테리어
직장
종합
헬스케어
푸드테크
패션
techstack-logo
렌딧
techstack-logo
숨고
techstack-logo
에이비일팔공
techstack-logo
채널코퍼레이션
techstack-logo
뱅크샐러드
techstack-logo
브이씨앤씨
techstack-logo
번개장터
techstack-logo
프리윌린
techstack-logo
네오사피엔스
techstack-logo
윙잇
techstack-logo
페이히어
techstack-logo
크리에이트립
techstack-logo
매스어답션
techstack-logo
11번가
techstack-logo
엠큐닉
techstack-logo
업라이즈
techstack-logo
디스콰이엇
techstack-logo
샤플
더 보기
기술 블로그 글
여기어때컴퍼니
skirr한 AWS SES 구축기
안녕하세요, 올해 1월에 여기어때컴퍼니 SRE팀에 새롭게 합류하게 된 엘리입니다.올해 Yahoo와 Gmail에서 이메일과 관련된 새로운 정책을 발표하였습니다. 이에 따라 여기어때도 보다 안전하고 효율적인 메일박스 관리를 위해 관련 시스템 업데이트를 시행하였으며 해당 내용을 공유하고자 합니다.🚨메일박스에서 새로운 이메일 정책 발표🚨Yahoo와 Gmail에서 하루에 5000개 이상의 메일을 보내거나, 수신자 중 상당수가 메일을 스팸으로 표시하는 사람들을 대상으로 새로운 요구사항을 발표했습니다!더욱 엄격한 도메인 인증 준수수신자에게 대량 메일 구독을 쉽게 취소할 수 있는 방법 제공스팸 불만 비율 모니터링 및 0.3% 임곗값 미만으로 유지왜 이메일 정책이 진화할까요❓1️⃣ 발신자 인증을 통한 보안 강화본격적으로 글을 시작하기 전에 아이스 브레이킹 퀴즈를 하나 준비해봤습니다!!!example@gmail.comexampIe@gmail.com위 두 가지 이메일의 차이가 보이시나요?🧐....🫣....첫번째는 examp'l’e은 L의 소문자이고, 두번째 examp'I’e은 i의 대문자입니다.이와 같이 이메일 주소를 의도적으로 교묘하게 다르게 보냄으로써 사용자가 익숙한 메일을 무심코 클릭하게 만듭니다.이처럼 이메일 주소를 교묘하게 바꿔 사용자를 속이는 사이버 범죄가 급증하고 있습니다. 이는 사용자의 개인 정보를 빼앗거나, 악성 코드를 전송하는 등 다양한 방식의 범죄에 이용됩니다. 그렇기 때문에 “발신자 인증”은 원활한 이메일 송수신을 보장하고, 스팸이나 악성 코드를 방지하는 역할을 함으로써 사용자의 메일함을 안전하게 지켜줍니다. 그렇기 때문에 발신자 인증을 유심히 확인해야 하고, 발신자 인증을 통해 보안을 강화해야 합니다.2️⃣ 스팸 메일을 줄여 이메일 품질 향상두 번째는 '무분별한 광고 알림'으로 인한 이메일 품질의 저하입니다. 이메일은 우리의 일상 속에서 중요한 소통 도구로 작용하지만, 무차별적인 광고 알림 때문에 그 가치가 퇴색되고 있습니다. 무수히 쌓여있는 광고 메일들은 우리의 이메일을 '광고함'으로 전락시키며, 알림을 확인하는 것 자체가 부담이 되곤 합니다. 특히, 이런 광고 메일들의 구독 취소가 복잡하거나 불가능하다면 더욱 더 사용자들의 불만을 증폭시킵니다.스팸 메일이나 피싱 공격 등의 문제로 인해, 이메일 서비스 제공 업체인 Gmail과 Yahoo에서는 새로운 이메일 정책을 도입하게 되었습니다.오늘은 이 새로운 정책 중에서 가장 중요한 부분인 '도메인 인증'에 대해 알아보려고 합니다. 이메일이 우리 생활의 일부가 되면서, 그 중요성이 점점 더 커지고 있습니다. 그래서 이 글을 계기고 이메일 보안에 대해 깊이 있게 알아보려 합니다.이메일 인증 → 도메인 인증이메일을 보낼 때 보안 인증 유형은 이메일 인증과 도메인 인증이 있습니다.이메일 인증의 한계위조 가능성: 이메일 인증은 특정 이메일 주소의 소유권을 확인하는 과정입니다. 하지만, 이메일 주소는 위조가 가능하며, 악의적인 사용자가 정당한 이메일 주소를 사칭할 수 있습니다. 이는 보안 문제를 야
awsses
스티비
G메일 수신 정책 변경, 어떻게 조치해야 할까요? (2) - 자체 서버로 발송하는 경우
자체 서버 또는 AWS SES와 같은 클라우드 서비스를 사용해 이메일을 발송하는 경우에 필요한 기술적인 조치를 알아봅니다.2024년 2월 1일부터 G메일의 새로운 이메일 수신 정책이 단계적으로 적용되고 있습니다. 스티비 팀도 실제로 어떤 영향이 발생하는지 면밀히 모니터링하고 대응하고 있습니다.이 글을 읽으시는 분이 스티비를 사용하고 계시거나 스티비와 같은 이메일 발송 서비스를 사용하고 계시다면 아래 내용을 조치해 주시면 됩니다.간단하게 요약하면 이런 내용입니다.• G메일에서 직접 발송하는 경우가 아니면 gmail.com 발신자 주소를 사용하면 안됨.자세한 내용은 G메일 수신 정책 변경, 어떻게 조치해야 할까요? (1) - 스티비에서 발송하는 경우를 참고해 주세요.스티비와 같은 이메일 발송 서비스를 사용하지 않고 이메일 발송 서버를 직접 구축하거나 AWS SES와 같은 클라우드 서비스를 사용해 이메일을 발송하고 있다면, 이 5가지 내용 외에도 추가로 더 확인하거나 조치해야 하는 게 있습니다.이메일의 헤더 구조, 인증 체계 등이 익숙하지 않다면 번거롭고 불편하게 느껴지실 수 있지만, 대부분 기술적으로 어렵지 않은 내용입니다.모든 발신자가 조치해야 하는 것발신자 이메일 주소로 사용하는 도메인의 IP 주소에 PTR 레코드를 추가해 역방향 DNS 레코드를 설정해야 합니다. 이때, 역방향 DNS 레코드는 정방향 DNS 레코드와 서로 일치해야 합니다. AWS(아마존 웹 서비스), GCP(구글 클라우드 플랫폼)와 같은 클라우드 서비스를 사용하고 있다면, 보통 IP 주소를 설정하는 곳에서 역방향 DNS 레코드를 설정할 수 있습니다. (AWS 도움말, GCP 도움말)IP 주소를 직접 구매해 사용하고 있다면 KT, LG U+, SKB와 같은 ISP 업체에 문의해야 합니다.웹사이트를 접속할 때 HTTP가 아닌 HTTPS를 사용하는 것처럼, 이메일을 발송할 때도 보안 프로토콜인 TLS 연결을 사용해야 합니다.일반적인 상용 솔루션, 라이브러리는 TLS 연결을 기본적으로 지원합니다. 구체적인 사용 방법은 사용하시는 솔루션, 라이브러리의 문서를 참고하세요. TLS 연결에 대한 기본적인 내용이 궁금하시면 TLS란?을 참고하세요.G메일에서 발신자 이름 옆의 화살표(▼)를 클릭하면 이메일의 TLS 연결 사용 여부를 확인할 수 있습니다.RFC 5322는 이메일의 메시지 구조, 헤더 필드, 메시지 구문, 메시지 형식 등을 정의하고 있습니다. 각 헤더는 중복되지 않아야 하고 각 헤더의 용도에 맞는 값을 넣어 이메일을 발송해야 합니다.헤더를 중복 사용해 발신자를 사칭하는 경우가 있기 때문에 G메일과 같은 수신 서비스에서는 중복된 헤더를 사용하는 이메일, 즉 RFC 5322를 준수하지 않는 이메일은 스팸으로 분류해 차단합니다. (Gmail의 RFC 5322 반송 문제 도움말)상용 솔루션이나 라이브러리를 사용하는 경우 대부분 특별히 신경쓰지 않아도 RFC 5322를 준수할 수 있습니다. RFC 5322에 대한 자세한 내용이 궁금하시면 이 표준에 대한 공식 문서를 참고하세요.스티비와
awsses
SK텔레콤
[AWS SES 연재 4] Using AWS SES with SpringBoot SMTP Library
SMTP 이용하여 연동하기Overview• None AWS SDK를 이용하여 메일 전송을 수행할 수 있지만, 기존의 SMTP 를 그대로 이용하여 메일 전송 플로그램 을 작성할 수 있다.• None 우리는 이번 아티클에서 SMTP 를 이용한 메일 전송을 구현해 볼 것이다.• None 를 참조하여 개발하였다. 다음 소스 를 참조하여 개 발하였다.메일 전송 개발하기사전 준비사항• None AWS SES 리소스 생성하기• None 프로젝트 생성하기• None 라이브러리 의존성 추가하기• None SMTP 를 위한 설정 추가하기의존성 추가하기• None smtp 를 이용하기 위해서 SpringBoot Autoconfig 라이브러리를 다음과 같이 pom.xml 파일에 등록하자.SMTP 를 위한 설정 추가하기• None SpringBoot Autoconfig 덕분에 우리는 아주 간편하게 의존성 설정을 추가할 수 있다.• None /src/main/resources/application.properties 파일에 다음과 같의 의존성을 추가하자.• None spring.mail.protocol 프로토콜은 smtp 이다.• None spring.mail.host host 파일은 ses를 생성한 리젼의 ses 엔드포인트를 작성한다. ses 메인 대시보드에서 아래와 같이 확인할 수 있다.• None spring.mail.port 기본적으로 TLS를 이용해야하며, ses 메인 대시보드에서 확인 한 값을 작성하면 된다. (위 이미지 참조)• None spring.mail.default-encoding 디플토 인코딩 값을 지정한다.• None spring.mail.username 계정 생성은 AWS Console 에서 다음과 같이 생성할 수 있다. 계정 생성은 AWS Console 에서 다음과 같이 생성할 수 있다. Credential생성 참조• None spring.mail.password 계정 생성은 AWS Console 에서 다음과 같이 생성할 수 있다. 계정 생성은 AWS Console 에서 다음과 같이 생성할 수 있다. Credential생성 참조• None spring.mail.properties.mail.smtp.auth smtp 인증을 이용할 것인지 지정한다. (true로 지정하였다.)• None spring.mail.properties.mail.smtp.connectiontimeout 서버에 접속할 커넥션 타임아웃을 5초로 잡았다. 이 값은 어플리케이션의 특성에 맞게 적절히 잡아주자.• None spring.mail.properties.mail.smtp.timeout smtp 전송 후 결과까지 타임아웃을 지정한다.• None spring.mail.properties.mail.smtp.writetimeout smtp 에 컨텐츠를 작성하기 까지 타임아웃을 지정한다.• None spring.mail.properties.mail.smtp.starttls.enable TLS 적용 여부를 설정한다. true를 지정하였다.Email Sender DTO 작성하기
awsses
spring
SK텔레콤
[AWS SES 연재 3] Using AWS SDK V1 with SpringBoot
AWS SDK 이용하기 Java SDK V1 이용하기Overview• None AWS 에서는 SES 를 위한 SDK 라이브러리를 제공하고 있다.• None 아래 내용은 관련메뉴얼 을 참조하여 작성하였다.메일 전송 개발하기• None 이제 SpringBoot 를 이용하여 메일 전송 프로그램을 개발해 볼 것이다.사전 준비사항• None AWS Cli 설치• None AWS Credential 설정하기• None AWS SES 생성하기• None 스프링 프로젝트 생성• None 의존성 추가AWS Cli 설치하기• None Mac 을 기준으로 AWS Cli 를 설치하자. 다음을 참고하여 설치하면 된다.AWS Credential 설정하기• None AWS Console에서 IAM 을 신규로 생성하고, Credential 을 다운로드 받는다.• None 관 련 정보는 AWS 자격증명 을 참조하자.• None 로컬에 aws 설정을 수행하자.• None 이렇게 설정하고 나면 다음과 같이 정상적으로 프로파일이 등록 되었는지 확 인해보자.의존성 추가하기• None 우선 스프링 부트 프로젝트를 생성하자. https://start.spring.io/ 에서 생성하면 된다.• None 이제 프로그램을 개발하기 위 해서 필요한 의존성 라이브러리를 pom.xml 파일에 추가하자.• None 위 의존성은 aws-java-sdk 중 ses 의존성만 추가하였다.필요한 속성 설정하기• None 이제 어플리케이션의 변경사항은 변수로 설정할 수 있도록 하기 위해서 application.properties 파일을 작성하자.• None 파일위치는 src/main/resources/application.properties 이다.• None aws.ses.profile 는 이전에 설정한 schooldevops 으로 프로파일 이름이다.• None aws.ses.from 메일을 보내는 사람의 메일 주소이다.• None aws.ses.region 우리가 사용할 ses의 리젼을 기술하였다.• None aws.ses.encoding 기본 테스트 인코딩을 설정해 주었다. 고정으로 지정해도 된다.AWs SES 용 메일 전송을 위한 Bean 등록하기• None 이제 Bean 을 등록하자.• None Bean 은 AWS SES를 이용하여 메시지를 전송하기 위한 전송 객체를 빈으로 등록한다.• None 빈 등록을 위해서 다음 경로에 파일을 작성하자. com.schooldevops.aws.mail.sdkv1.configs.SesSDKV1Config.java• None AmazonSimpleEmailServiceAsyncClientBuilder 을 이용하여 SES를 위한 객체를 빌드 한다.• None 빌드한 객체에 credential 방식으로 profile을 이용 할 것이므로 profileCredentialsProvider 를 전달했다.• None region은 이전에 properties에 설정한 리젼이 전달된다.• None @Bean 을 이용하여 AmazonSimpleEmailService 를 빈으로
awsses
Copyright © 2025. Codenary All Rights Reserved.