그러나 Office 365 의 경우 다른 SMTP 메일 서버와 다르게 추가적인 설정과 제약사항이 존재한다.
Office 365 의 SMTP 설정 정보
- 호스트 : smtp.office365.com
- 포트 : 587
- 암호화 : STAETTLS
테스트 환경
- pc : MacBook Pro 2015
- java : 1.8
- spring framework : 4.3.23.RELEASE
- java-mail : 1.5.6
다음은 위의 정보를 이용한 간단한 테스트 코드이다. 보안상 계정정보는 **으로 표기하였다.
package tests; import java.util.Properties; import javax.mail.internet.MimeMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; public class JavaMailSendTest { public static void main(String[] args) throws Exception { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); Properties javaMailProperties = new Properties(); mailSender.setUsername("****"); mailSender.setPassword("****"); javaMailProperties.setProperty("mail.transport.protocol", "smtp"); javaMailProperties.setProperty("mail.debug", "true"); javaMailProperties.setProperty("mail.smtp.port", "587"); javaMailProperties.setProperty("mail.smtp.host", "smtp.office365.com"); javaMailProperties.setProperty("mail.smtp.auth", "true"); javaMailProperties.setProperty("mail.smtp.starttls.enable", "true"); mailSender.setJavaMailProperties(javaMailProperties); MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom("****", "시스템"); helper.setTo("test@test.com"); helper.setSubject("test"); helper.setText("test...", false); mailSender.send(message); } }
이때 주의 할 것은 로그인 계정과 보내는 메일의 주소가 다른 경우 오류가 발생하게 된다.
com.sun.mail.smtp.SMTPSendFailedException: 554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; Failed to process message due to a permanent exception with message Cannot submit message.
댓글 없음:
댓글 쓰기