com.sun.mail.smtp.SMTPSendFailedException: 552 5.3.4 Error: message file too big
은 SMTP 서버에서 메일 본문(첨부파일 포함)의 크기가 허용 한도를 초과했을 때 발생하는 전형적인 오류입니다.
즉, 메일 서버가 허용하는 최대 메시지 크기보다 큰 파일을 첨부해서 전송하려고 할 때 발생합니다.
🧩 원인 분석
SMTP 상태 코드 552 5.3.4
→ “Message size exceeds fixed maximum message size”
→ 서버가 허용하는 메시지 크기 한도를 넘었음을 의미합니다.
이 오류는 다음과 같은 경우에 발생합니다:
첨부파일 크기가 크다 (보통 10MB~25MB 제한)
메일 본문 + Base64 인코딩된 첨부파일 전체가 제한을 초과함
(예: 10MB 파일을 첨부해도 실제 전송 크기는 약 13~14MB가 됨)
서버 측 정책 (Gmail, Exchange, Naver, Daum 등 SMTP 서버 설정)으로 인한 제한
🔧 해결 방법
✅ 1. 첨부파일 크기를 줄이기
파일을 압축(zip, 7z 등)하거나, 일부 분할 압축
이미지라면 해상도/품질을 낮추기
PDF는 “파일 → 크기 줄이기” 기능 활용
✅ 2. SMTP 서버 설정 변경 (관리자용)
만약 직접 운영 중인 SMTP 서버(Postfix, Sendmail, Exchange 등) 이라면,
서버에서 허용 메시지 크기를 늘릴 수 있습니다.
▶ Postfix 예시
bash
코드 복사
# main.cf 설정 파일 열기
sudo vi /etc/postfix/main.cf
# 허용 크기 상향 (예: 50MB)
message_size_limit = 52428800
적용 후 Postfix 재시작:
bash
코드 복사
sudo systemctl restart postfix
▶ Sendmail 예시
/etc/mail/sendmail.cf 또는 sendmail.mc 파일 수정:
pgsql
코드 복사
define(`confMAX_MESSAGE_SIZE', `52428800')dnl
수정 후 재컴파일:
bash
코드 복사
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
systemctl restart sendmail
✅ 3. Gmail, Naver, Daum 등 외부 SMTP 사용 시
Gmail: 첨부파일 최대 25MB
Naver/Daum: 보통 10MB~20MB
Outlook/Exchange Online: 기본 25MB
이 경우 서버 설정을 변경할 수 없으므로,
Google Drive, Naver MyBox, Dropbox 등 파일 링크로 공유
또는 파일을 여러 메일로 분할 전송
✅ 4. JavaMail 전송 시 점검 포인트
JavaMail API로 메일 전송 중이라면,
Base64 인코딩 후 실제 전송 크기가 더 커지기 때문에
첨부 전 크기 체크 로직을 추가하는 것이 좋습니다.
예:
java
코드 복사
File file = new File("attachment.zip");
long sizeInBytes = file.length();
long sizeLimit = 20 * 1024 * 1024; // 20MB 제한
if (sizeInBytes > sizeLimit) {
throw new IllegalArgumentException("첨부파일이 너무 큽니다: " + sizeInBytes + " bytes");
}
또는 SMTP 서버 설정을 코드 내에서 지정할 수도 있습니다:
java
코드 복사
props.put("mail.smtp.size.limit", "52428800");
(단, 이 설정은 클라이언트측 한도이므로 서버 한도를 초과하면 여전히 552 오류 발생)
🧭 요약
원인 해결 방법
첨부파일이 너무 큼 압축, 분할, 링크 전송
SMTP 서버 자체 제한 서버 설정 변경 (Postfix/Sendmail 등)
외부 SMTP (Gmail 등) 클라우드 링크 사용
JavaMail 코드 측 크기 관리 필요 첨부 크기 검사 추가
'[AWS-FRF] > EC2' 카테고리의 다른 글
| [Rocky Linux] 메일서버 구축(Postfix, Dovecot, MariaDB And Roundcube) [리뉴얼] (0) | 2025.11.04 |
|---|---|
| systemctl daemon-reload 경고 메시지 !! (5) | 2025.07.31 |
| [AWS Cost Optimization Hub] 완벽 가이드 - 클라우드 비용 절감의 핵심 전략!! (7) | 2025.05.19 |
| [중요] 자바 힙(Heap) 메모리 구조 & 동작과정 / Heap 메모리와 Non-Heap 메모리 차이점 !! (5) | 2025.04.02 |
| [참고] REST API 방식과 TCP 방식의 차이점!! (5) | 2025.03.25 |
| [중요] NGINX / JAVA 서버 로그 주기 설정 작업 !! (5) | 2025.03.12 |
| [참고] Amazon EBS 암호화 작동 방식 !! (3) | 2025.03.11 |
| [참고] AES-256(Advanced Encryption Standard - 256bit) 강력한 대칭키 암호화 알고리즘 !! (3) | 2025.03.11 |
댓글