Python使用TITUS分类发送outlook电子邮件

时间:2016-12-06 20:42:58

标签: python excel vba excel-vba email

我需要使用python发送电子邮件并绕过当前脚本提供的TITUS CLASSIFICATION弹出窗口。弹出窗口阻止它自动发送。

PYTHON

olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "My Subject"
newMail.Body = "My Body"
newMail.To  = "myemail@gmail.com"
newMail.send()

VBA

我有一个自动发送电子邮件的VBA解决方案,但是在PYTHON脚本中包含所有内容而不是创建VBA宏并调用它会更容易,更直观。

Dim AOMSOutlook As Object
Dim AOMailMsg As Object
Set AOMSOutlook = CreateObject("Outlook.Application")
Dim objUserProperty As Object
Dim OStrTITUS As String
Dim lStrInternal As String
Set AOMailMsg = AOMSOutlook.CreateItem(0)

Set objUserProperty = AOMailMsg.UserProperties.Add("TITUSAutomatedClassification", 1)
objUserProperty.Value = "TLPropertyRoot=ABCDE;Classification=For internal use only;Registered to:My Companies;"
With AOMailMsg
  .To = "myemail@gmail.com"
  .Subject = "My Subject"
  .Body = "My Body"
  .Send
End With

Set AOMailMsg = Nothing
Set objUserProperty = Nothing
Set AOMSOutlook = Nothing
Set lOMailMsg = Nothing
Set objUserProperty = Nothing
Set lOMSOutlook = Nothing

任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:1)

This should do it for you.

SMTPserver = 'smtp.att.yahoo.com'
sender =     'me@my_email_domain.net'
destination = ['recipient@her_email_domain.com']

USERNAME = "USER_NAME_FOR_INTERNET_SERVICE_PROVIDER"
PASSWORD = "PASSWORD_INTERNET_SERVICE_PROVIDER"

# typical values for text_subtype are plain, html, xml
text_subtype = 'plain'


content="""\
Test message
"""

subject="Sent from Python"

import sys
import os
import re

from smtplib import SMTP_SSL as SMTP       # this invokes the secure SMTP protocol (port 465, uses SSL)
# from smtplib import SMTP                  # use this for standard SMTP protocol   (port 25, no encryption)

# old version
# from email.MIMEText import MIMEText
from email.mime.text import MIMEText

try:
    msg = MIMEText(content, text_subtype)
    msg['Subject']=       subject
    msg['From']   = sender # some SMTP servers will do this automatically, not all

    conn = SMTP(SMTPserver)
    conn.set_debuglevel(False)
    conn.login(USERNAME, PASSWORD)
    try:
        conn.sendmail(sender, destination, msg.as_string())
    finally:
        conn.quit()

except Exception, exc:
    sys.exit( "mail failed; %s" % str(exc) ) # give a error message

See this link for more details.

Sending mail from Python using SMTP

答案 1 :(得分:1)

将以下代码添加到发送功能结束,并选择TITUS分类:

mailUserProperties  = newMail.UserProperties.Add("gmail.comClassification", 1)
mailUserProperties.Value = "For internal use only" 
newMail.Display() 
newMail.Send()