ASP 폼메일 발송 시 한글이 ???로 표시되는 이유는 무엇인가요?
💡 요약 정리
- CDO 메일 컴포넌트는 운영체제의 국가 코드(로캘)를 자동으로 따릅니다.
- 영문 O/S에서는 한글이 ???로 깨져 보일 수 있습니다.
- 폼메일(ASP) 코드에 문자셋을 명시적으로 지정하세요.
- 권장 설정: ks_c_5601-1987를 .BodyPart.Charset, .HTMLBodyPart.Charset에 적용
- .BodyPart.Charset 라인은 다른 코드보다 위에 위치해야 합니다.
1. 원인
- CDO 컴포넌트는 O/S의 국가 코드로 자동으로 작동합니다.
- 따라서 영문 O/S에서는 한글이 ??? 등으로 표시될 수 있습니다.
- 국가별 언어를 한국어로 설정했더라도, 폼메일 발송 시 한글이 ???로 보일 수 있습니다.
2. 해결 방법
- 폼메일(ASP) 소스에서 문자셋(Character Set) 코드를 명시적으로 추가해 주세요.
2-1. 기본 문자셋 추가 예시
.BodyPart.Charset = "ks_c_5601-1987"
.HTMLBodyPart.Charset = "ks_c_5601-1987"
2-2. With 블록 내 전체 예시
With objMessage
.BodyPart.Charset = "ks_c_5601-1987"
.To = receiver_email
.From = sender_email
.Subject = title
.HTMLBody = content
.HTMLBodyPart.Charset = "ks_c_5601-1987"
.Send
End With
- 중요: .BodyPart.Charset의 위치는 다른 코드보다 상위에 있어야 합니다.
3. 적용 시 유의사항
- 문자셋 설정은 메일 본문이 설정되기 전에 지정해야 올바르게 반영됩니다.
- HTML 본문을 사용할 경우, .HTMLBodyPart.Charset도 함께 지정하세요.