2014-01-30 2 views
1

win32com.client 패키지를 사용하여 Outlook을 사용하여 Python을 통해 HTML 전자 메일을 보낼 수 있습니다. 그러나 이메일을 "우선 순위"또는 "중요도"로 표시하는 방법을 찾는 데 어려움을 겪고 있습니다. 여기 Python을 사용하여 Outlook을 통해 높은 중요성 전자 메일 보내기

내가 성공적으로 (우선 순위없이 마킹) 이메일을 보내 사용하고 코드입니다 :

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="Times New Roman"> 
%s 
</FONT></SPAN><SPAN = 
LANG=3D"en-us"></SPAN></P> 
<br> 
%s 
</BODY> 
</HTML>""" 

Format = { 'UNSPECIFIED' : 0, 'PLAIN' : 1, 'HTML' : 2, 'RTF' : 3} 
profile = "Outlook" 


#session = win32com.client.Dispatch("Mapi.Session") 
outlook = win32com.client.Dispatch("Outlook.Application") 
#session.Logon(profile) 
mainMsg = outlook.CreateItem(0) 
mainMsg.To = "RECIPIENT" 
mainMsg.Subject = subject 
mainMsg.BodyFormat = Format['RTF'] 
mainMsg.HTMLBody = RTFTEMPLATE % (subject,html,bad_table) 
mainMsg.Send() 

답변

2

COM Outlook Object Model을 통해 메시지를 작성 중입니다. 이 모델은 완벽하게 문서화되어 있으며 이와 같은 상황에서 큰 도움이 될 수 있습니다.

예를 들어, MailItem은 작성중인 here입니다. 이 페이지에서 알 수 있듯이 메시지에는 "012 중요도"로 표시하기 위해 2 (olImportanceHigh)로 설정할 수있는 속성 인 Importance이 있습니다. 코드에서

mainMsg.Importance = 2 
+0

정말 고마워요! 해당 키워드 (Outlook Object Model)를 찾고있었습니다. 준 관련 노트에서 widows 태스크 스케줄러는 win32com python 스크립트를 좋아하지 않는 것 같습니다. Outlook에서 "프로그램을 시작하지 않았습니다"라는 오류 메시지가 표시됩니다. 단서가 없다면 다른 질문을 던지겠습니다. Thansl Paul-Jan 편집 : 파이썬이 다른 Outlook 인스턴스를 열려고하기 때문에 그런 것처럼 보입니다. 적어도 그것은 내가 가진 최고의 추측입니다. – chungsangh

1

이가 Outlook에서 '높은 우선 순위'로 인식이야 있도록 메시지를 표시하려면 추가

X-Priority: 1 

을, 나는 방법으로 메시지 헤더에 사용하는 구성 요소를 줄을 추가하는 방법을 말할 수 없습니다 : 메시지 헤더에 라인을 다음과 같습니다.

+0

흠 ... 문제가 나를 위해 오는 곳이 있습니다. 나는 파이썬이 윈도우 애플리케이션을 호출하는 것에 너무 익숙하지 않다. (원리를 연구하지 않고 예제를 기반으로 코드를 작성했기 때문에) 어디서부터 시작해야할지 전혀 모른다. ... 내가 어디에서 시작할 수 있는지에 대한 조언이 있는가? 들여다 보죠? – chungsangh

+0

당신이하고있는 일을하기 위해 Windows 애플리케이션 (Outlook)을 호출해야하는지 확신 할 수 없습니다. 즉, 메시지를 보내기 위해 Outlook을 프로그래밍하지 않아도된다고 생각합니다. 메시지를 '우선 순위가 높은'특성으로 보내려고하기 때문입니다. python에서 메일 패키지를 통해 일반적인 방법으로 메시지를 보내고 위의 행을 메시지 헤더에 포함시킬 수 있습니다. 링크가 메시지 헤더를 맞춤 설정하는 방법을 보여주는 예는 다음과 같습니다. http://docs.python.org/2/library/email-examples.html – mti2935

+0

흥미 롭습니다. 이것은보다 강력한 솔루션 인 것으로 보인다. 나는 약간의 시간이있을 때 그것을 공부해야 할 것이다. 도와 주셔서 감사합니다 – chungsangh

관련 문제