728x90
반응형
회원가입이 완료되면 로그인해서 Dashboard로 넘어온다.
좌측 사이드바 Settings > API Keys > Create API Key 선택해서 API Key를 만든다. 권한을 잘 설정해야 하는데 일단 Full Access를 주었음. 프로젝트마다 설정이 다를 수 있으니 적절한 권한을 선택하면 된다. API Key를 생성하면 반드시 그 자리에서 저장해야함. 그 이후에는 Key를 다시 확인할 수 없고 새로 만들어야 함.
다음으로 Settings > Sender Authentication > Single Sender Verification 선택해서 이메일을 인증한다. 근데 지금 보니까 도메인 인증 방법도 있으므로 이것도 필요한 상황에 맞게 하면 될 듯. 토이프로젝트 용에서는 개발자 개인 이메일로 발송해도 되니까 그냥 내 네이버 메일을 사용하였음.
여기까지 하면 SendGrid 설정 완료!
이제 SendGrid Java 라이브러리를 가지고 구현을 해보자.
Java 라이브러리 문서에 예제 코드가 잘 되어 있어서 크게 어렵지 않았다.
build.gradle
dependencies {
implementation 'com.sendgrid:sendgrid-java:4.10.2'
}
application.yml
spring:
sendgrid:
from: aaa@bbb.com SendGrid에서 인증한 이메일 주소
api-key: SG.로 시작하는 API Key
SendGridConfig.java
@Configuration
public class SendGridConfig {
@Value("${spring.sendgrid.api-key}")
private String apiKey;
@Bean
public SendGrid sendGrid() {
if (apiKey == null) {
throw new CustomException(ErrorStatus.BAD_REQUEST, "SendGrid integration is not enabled");
}
return new SendGrid(apiKey);
}
}
SendGridUtil.java
@Component
@RequiredArgsConstructor
public class SendGridUtil {
private final SendGrid sendGrid;
@Value("${spring.sendgrid.from}")
private String fromEmail;
public void sendEmail() throws IOException {
// 보내는 사람 (발신자)
Email from = new Email(fromEmail);
// 제목
String subject = "Sending with Twilio SendGrid is Fun";
// 받는 사람 (수신자)
Email to = new Email("받는 이메일 주소");
// 내용
Content content = new Content("text/plain", "and easy to learn");
// 발신자, 제목, 수신자, 내용을 합쳐 Mail 객체 생성
Mail mail = new Mail(from, subject, to, content);
send(mail);
}
private void send(Mail mail) throws IOException {
sendGrid.addRequestHeader("X-Mock", "true");
Request request = new Request();
request.setMethod(Method.POST);
request.setEndpoint("mail/send");
request.setBody(mail.build());
Response response = sendGrid.api(request);
}
}
이렇게 SendGridUtil로 만들어서 sendEmail 메서드를 실제 필요한 서비스 단에서 호출해서 사용할 수 있다!
실제로 sendEmail 메서드를 실행하면, 이렇게 메일이 전송되게 된다.
다음 글에서는 이메일 템플릿을 사용하는 방법에 대해 다루려고 한다.
728x90
반응형
'개발 > Spring' 카테고리의 다른 글
[Spring] Spring Boot에서 Google Cloud Storage(GCS)에 파일 업로드하기 - 2 (0) | 2024.05.23 |
---|---|
[Spring] Spring Boot에서 Google Cloud Storage(GCS)에 파일 업로드하기 - 1 (0) | 2024.05.22 |
[Spring] Spring Boot에서 SendGrid로 이메일 전송하기 - 3 (1) | 2024.05.21 |
[Spring] Spring Boot에서 SendGrid로 이메일 전송하기 - 1 (0) | 2024.05.21 |