2012-06-20 5 views
2

일부 데이터가 들어있는 간단한 HTML 파일을 보내고 싶습니다. 나는 사용자가 렌더링 된 HTML을 받기를 원한다.전자 메일 본문에 렌더링 된 HTML

b = render_to_string('mail_body.html',{'name':request.POST['name']}) 
send_mail(email_subject,b,'[email protected]', ['[email protected]'], 
    fail_silently=False) 

하지만 메일 본문에 HTML 렌더링되지 않으며 사용자가 HTML 태그를 모두 볼 수 있습니다 :이 솔루션을 시도했습니다! 나는 다음과 같은 코드를 사용할 때

또한, 난 그냥 메일 본문 내 HTML 파일의 경로를 얻을 :

params = {} 
params['name'] = request.POST['name'] 
context = Context(params) 
t = Template('mail_body.html') 
send_mail(email_subject,t.render(context), '[email protected]', 
    ['[email protected]'], fail_silently=False) 
+0

스타일은 모두 .html로 인라인됩니다. – zinking

+1

http://code.activestate.com/recipes/473810-send-an-html-email-with-embedded-image-and-plain을 사용하는 것이 좋습니다. -t/- 이것은 html/첨부 파일/이미지 등의 형식을 처리합니다 ... 또한 일반 텍스트를 보내는 방법을 제공합니다 - 여러 프로젝트에서 사용했습니다 –

답변

2

당신이 뭔가를 시도 할 수 있습니다. 여기에 내 자신의 프로그래밍에서 오는 많은 변수가 있음을 주목하십시오.

1

문제는 당신이 사용자가 당신이 그들을 보내는 클라이언트를 우편으로 말할 필요가있다 HTML 전자 메일입니다. 그렇지 않으면 텍스트 만있는 것처럼 HTML이 표시됩니다.

이 설정을 MIME 유형이라고하며 python user guides에이 설정 방법에 대해 자세히 읽고 (파이썬으로 HTML 전자 메일 보내기) 참조 할 수 있습니다. 이 올바른 방향으로 이끌어

from django.core.mail import EmailMultiAlternatives 
body = render_to_string(template_name, locals(), 
         context_instance=RequestContext(request)) 
email = EmailMultiAlternatives(subject, body, mail_sender, [contact_request.email], headers={'Reply-To': '[email protected]'}) 
email.content_subtype='html' 
email.send(fail_silently=False) 

희망 :

관련 문제