使用python 驅動 lotus notes發送郵件

來源:互聯網
上載者:User

因為最近做buildbot,想要使用公司的郵件系統 lotus notes發送郵件,但是網上一直沒有比較完整的例子,都是vb的例子比較多,或者例子不完整,後來看到一個用visual foxpro 做的例子,才知道lotus 的com對象可能在版本間有差別,比如網上很多例子都用doc.Form,但是實際上doc對象沒有Form屬性,應該用ReplaceItemValue才對。這個例子是針對notes 6.5的。

 

 

from win32com.client import Dispatch

 

def SendEmail(SendTo,CC,BCC,Subject,Body,Attachment=None,Pass=None):

    if SendTo==None:

        return

    session=Dispatch("Lotus.NotesSession")

    if Pass:

        session.Initialize(Pass)

    Server=session.GetEnvironmentString( "MailServer",True)

    MaildbName=session.GetEnvironmentString( "MailFile",True)

    db=session.GetDatabase(Server,MaildbName)

    doc=db.CreateDocument()

    doc.ReplaceItemValue("Form","Memo")

    if SendTo:

        doc.ReplaceItemValue("SendTo",SendTo)

    if CC:

        doc.ReplaceItemValue("CopyTo",SendTo)

    if BCC:

        doc.ReplaceItemValue("BlindCopyTo",SendTo)

    if Subject:

        doc.ReplaceItemValue("Subject",Subject)

 

    stream=session.CreateStream()

    stream.WriteText(Body)

 

    bodyMime=doc.CreateMIMEEntity()

    bodyMime.SetContentFromText(stream,"text/html;charset=iso-8859-1",False)

 

    if Attachment:

        RichTextItem = doc.CreateRichTextItem("Attachment")

        for fn in Attachment:

            RichTextItem.EmbedObject(1454, "", fn ,"Attachment")

 

    '''

    bodyMime=doc.CreateMIMEEntity()

    bodyMime.SetContentFromText(stream,"text/html;charset=iso-8859-1",False)

    doc.ReplaceItemValue( "Logo", "StdNotesLtr3" )

    doc.ReplaceItemValue( "_ViewIcon", 23 )

    doc.ReplaceItemValue( "SenderTag", "Y" )

    '''

 

    doc.Send(False)

 

SendEmail("yourname@yourdomain",None,None,"Title:test for python","body:test for python send mail",

    ["d:/testtool/teri/pcsim/test.xls","d:/testtool/teri/pcsim/test_email.py"],"password")

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.