[SPRING] 유니 코드 문자와 스프링 JavaMailSenderImpl, 리눅스에서 유니 코드 문자가 없습니다!
SPRING유니 코드 문자와 스프링 JavaMailSenderImpl, 리눅스에서 유니 코드 문자가 없습니다!
나는 Spring과 JavaMailSenderImpl이라는 유명한 스프링 클래스를 사용하여 이메일을 보낸다. 내 이메일에는 èéàò 또는 가장 두드러진 두려운 € 기호와 같은 많은 유니 코드 문자가 포함되어 있습니다. 윈도우에서 실행하면 클래스가 잘 작동합니다. 전송 된 이메일은 모든 문자 (일반 텍스트, html 없음)와 함께 표시됩니다. Linux 가상 서버에 내 앱을 설치하면 모두 얻을 수 있습니까? 특수 문자 대신. 스프링, Java 구성 또는 다른 것이 있습니까?
최신 정보
기본적으로 아키텍처는 다음과 같습니다. Spring Web Application이 있으며 Spring JavaMailSenderImpl을 사용하여 작업을 완료합니다. 이것은 서블릿 컨텍스트의 구성입니다.
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${email.server}" />
<property name="username" value="${email.server_user}"></property>
<property name="password" value="${email.server_pass}"></property>
</bean>
Windows 및 Linux에서 동일한 호스트를 사용하여 메일을 전송합니다 (응용 프로그램이 실행되는 동일한 컴퓨터가 아닙니다 ... SMTP를 통한 표준 메일 서비스 공급자).
이메일을 보내는 데 사용하는 코드는 간단합니다.
SimpleMailMessage msg = new SimpleMailMessage();
msg.setTo(adminEmail);
msg.setFrom(adminEmail);
msg.setSubject(subject);
msg.setText(message);
mailSender.send(msg);
심지어 설정 :
System.setProperty("mail.mime.charset", "utf8");
응용 프로그램 시작시 상황을 해결하지 못합니다. 사실, 내가 오기 전에? € 대신에, 지금 나는 get을 얻는다.
해결법
-
==============================
1.필자의 경우 JavaMailSenderImpl의 defaultEncoding을 지정하여 인코딩 문제를 해결했습니다.
필자의 경우 JavaMailSenderImpl의 defaultEncoding을 지정하여 인코딩 문제를 해결했습니다.
mailSender = new JavaMailSenderImpl(); ... mailSender.setDefaultEncoding("UTF-8");
나는 당신이 빈 설정에서 값을 설정할 수도 있다고 믿는다.
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> ... <property name="defaultEncoding" value="UTF-8"/> </bean>
-
==============================
2.나는 해결책을 게시하고있다.
나는 해결책을 게시하고있다.
먼저 소스 코드의 인코딩 (인라인 텍스트가있는 경우)을 확인하십시오. Eclipse에서 프로젝트 속성을 선택하면 첫 번째 화면이됩니다. 경고 : 나중에 변경하면 텍스트가 손상됩니다.
둘째 MimeMailMessage를 사용하면 다음과 같이 인코딩을 지정할 수 있습니다.
MimeMessage msg = mailSender.createMimeMessage(); msg.addRecipient(RecipientType.TO, new InternetAddress(adminEmail)); msg.addFrom(new InternetAddress[] { new InternetAddress(adminEmail) }); msg.setSubject(subject, "UTF-8"); msg.setText(message, "UTF-8"); mailSender.send(msg);
셋째, mail.mime.charset 시스템 속성이 Java 명령이나 다음과 같은 코드에서 UTF-8로 설정되어 있는지 확인하십시오.
System.setProperty("mail.mime.charset", "utf8");
이 문제를 해결하는 데 도움을 준 모두에게 감사드립니다.
-
==============================
3.이 문제는 바이트 배열 (예 : 파일 읽기)과 java.lang.String을 변환 할 때 발생합니다. 응용 프로그램의 아키텍처에 대해 더 자세히 설명해 주시겠습니까?
이 문제는 바이트 배열 (예 : 파일 읽기)과 java.lang.String을 변환 할 때 발생합니다. 응용 프로그램의 아키텍처에 대해 더 자세히 설명해 주시겠습니까?
from https://stackoverflow.com/questions/5636255/unicode-chars-and-spring-javamailsenderimpl-no-unicode-chars-under-linux by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 제네릭과 모치토 일치 (0) | 2019.04.23 |
---|---|
[SPRING] Spring / Hibernate / JPA에서 PostgreSQL 함수 (저장 프로 시저)를 올바르게 호출하는 방법? (0) | 2019.04.23 |
[SPRING] AuthenticationCredentialsNotFoundException : 보안 컨텍스트에서 인증 개체를 찾을 수 없습니다. (0) | 2019.04.23 |
[SPRING] Spring @ Servlet에 게시 됨 (0) | 2019.04.23 |
[SPRING] 봄 부팅 1.5.2 - 로고를로드 한 후 웹 응용 프로그램이 멈 춥니 다? (0) | 2019.04.23 |