그러나 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.
댓글 없음:
댓글 쓰기