2009-03-17 2 views
1

Outlook 2003을 사용하여 서식있는 텍스트 전자 메일 메시지를 보내려고합니다. 다음 코드는 RTF HTML 소스 코드가 메일 메시지 본문에 덤프되도록합니다.Outlook 2003을 사용하여 서식있는 텍스트 전자 메일 보내기

해결하려면 어떻게해야합니까? Outlook에서 원본 HTML이 아닌 서식이 지정된 데이터를 표시하도록하려면 어떻게해야합니까?

import win32com.client 

RTFTEMPLATE = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
<HTML> 
<HEAD> 
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; = 
charset=3Dus-ascii"> 
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version = 
08.00.0681.000"> 
<TITLE>%s</TITLE> 
</HEAD> 
<BODY> 
<!-- Converted from text/rtf format --> 

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT = 
FACE=3D"Calibri">%s</FONT></SPAN><SPAN = 
LANG=3D"en-us"></SPAN></P> 

</BODY> 
</HTML>""" 

Format = { 'UNSPECIFIED' : 0, 'PLAIN' : 1, 'HTML' : 2, 'RTF' : 3} 
profile = "Outlook" 
subject="Subject" 
body = "Test Message" 

session = win32com.client.Dispatch("Mapi.Session") 
outlook = win32com.client.Dispatch("Outlook.Application") 
session.Logon(profile) 
mainMsg = outlook.CreateItem(0) 
mainMsg.To = "[email protected]" 
mainMsg.Subject = subject 
mainMsg.BodyFormat = Format['RTF'] 
mainMsg.Body = RTFTEMPLATE % (subject,body) 
mainMsg.Send() 

편집 : Body 대신 HTMLBody를 사용하면 Outlook에서 메시지를 RTF가 아닌 HTML로 감지합니다.

답변

0

RTF를 사용해야하는 경우 HTML을 RTF 형식으로 변환해야합니다. zopyx package을 확인하십시오.

는 HTML을 사용하는 라인을 변경하려면 :

mainMsg.Body = RTFTEMPLATE % (subject,body) 

에 :

mainMsg.HTMLBody = RTFTEMPLATE % (subject,body) 
+0

대신 몸의에서는 HTMLBody를 사용하여 Outlook이 HTML로 메시지를 감지하지 RTF로합니다. – user41767