2012-08-29 6 views
0

영어 (중국어, 일본어 등)로 메일을 보내야합니다. subject.py와 body를 얻을 수있는 template.py 파일이 있습니다. template.py영어 이외의 언어로 메일 보내기

 #!/us/bin/python                                          
    # -*- coding: utf-8 -*- 
    subject = '附录E: 配置参考' 
    body = '附录E: 配置参考' 

body와 subject를 template.py 파일에서 읽었습니다.

msg = EmailMultiAlternatives(subject, body, from, to) 
    msg.attach_alternative(html_content, "text/html") 
    msg.send() 

영어는 지원하지만 다른 언어는 사용할 수 없습니다. 어떻게 해결할 수 있습니까? 페이지 설정

+1

가 어떻게'html_content'을 생성하는 시도? –

+0

오류 메시지가 있습니까? 유니 코드 문자열에서''.encode ("utf-8")''을 실행하는 것만 큼 쉽지 않은 헤더 값의 코딩이 누락되는 문제를 보았습니다. –

+0

http://stackoverflow.com/questions/15885062/unicodeencodeerror-with-attach-file-on-emailmessage-django-error?noredirect=1#comment22664718_15885062 – catherine

답변

0

봅니다 캐릭터 세트는 여러 언어와 해당 문자를 인식

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

유니 코드로.

+0

미안하지만 어디에서 추가 할 수 있습니까? – pythonhmmm

+0

이메일 상단. –

0

또는이 시도 :

from email import Charset 
# Due to http://code.djangoproject.com/ticket/11212 
Charset.add_charset('utf-8',Charset.SHORTEST,None,'utf-8') 
0

Burhan입니다 물었을 때, 당신은 어떻게 당신이 메일을 확인 않았다 html_content 및 메일 클라이언트에서 발생합니까? 일반적으로 html_content<meta http-equiv="content-type" content="text/html; charset=utf-8" /> <head>에 유효한 HTML이어야합니다. 그렇지 'utf-8'을인지

는 또한의 django.conf.settings.DEFAULT_CHARSET 확인, 당신은 'utf-8'로 설정하거나 코드에서 msg.encoding = 'utf-8'을 설정할 수 있습니다 중 하나. (당신이 gb18030 같은 캐릭터 세트를 사용하려는 경우와 'utf-8' 교체)

플러스, 파이썬 2.X 코드, 더 나은 항상 이렇게 비 ASCII 문자가 포함 된 문자열을 유니 코드,

subject = u'附录E: 配置参考' 
body = u'附录E: 配置参考' 

# instead of 
subject = '附录E: 配置参考' 
body = '附录E: 配置参考' 
0

를 사용하는 그래서

import sys 
reload(sys) # to enable 'setdefaultencoding' again (optional) 
sys.setdefaultencoding("UTF-8") 

subject.encode는 ("UTF-8")

관련 문제