새 파일 추가

This commit is contained in:
2025-11-03 00:10:10 +00:00
parent eeaa99fa6e
commit d5dada686b

57
MailService.java Normal file
View File

@@ -0,0 +1,57 @@
package com.baekyangdan.scheduler.service;
import java.util.Properties;
import org.springframework.stereotype.Service;
import com.google.auth.oauth2.AccessToken;
import com.google.auth.oauth2.UserCredentials;
import jakarta.mail.Message;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeMessage;
@Service
public class MailService {
private static final String CLIENT_ID="688417162908-iqvnj4ceb8t1dkbjr70dtcafo27m8kqe.apps.googleusercontent.com";
private static final String CLIENT_SECRET="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";
private static final String REFRESH_TOKEN="1//04_pSivNoGpPUCgYIARAAGAQSNwF-L9IrO0Kx6jSzq_eQNjdl65f0O2iqKSNpFeZ3gtIGMhOk0oiZsnKrPfWs8jvuEic1NhUoZ0g";
private static final String USER_MAIL="baekyangdan@gmail.com";
public void sendTestMail() throws Exception {
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId(CLIENT_ID)
.setClientSecret(CLIENT_SECRET)
.setRefreshToken(REFRESH_TOKEN)
.build();
AccessToken accessToken = credentials.refreshAccessToken();
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth.mechanisms", "XOAUTH2");
Session session = Session.getInstance(props);
Transport transport = session.getTransport("smtp");
transport.connect("smtp.gmail.com", USER_MAIL, accessToken.getTokenValue());
Message message = new MimeMessage(session);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("lapinuit966@gmail.com"));
message.setSubject("test Mail");
message.setText("test mail");
message.setFrom(new InternetAddress(USER_MAIL));
transport.sendMessage(message, message.getAllRecipients());
transport.close();
System.out.println("메일 전송 완료");
}
}