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("메일 전송 완료"); } }