最近想做一個通過Louts發送郵件的小東西,從網上找了半天,什麼微軟的OutLook Connector, IBM的Domino Access for Microsoft Outlook,都太煩瑣。今天發現一個VB的COM方法,改成VFP的。我的郵件資料庫是在遠端伺服器上,按照原文無法打開郵件資料庫,隻得改成bookmark.nsf,現在測試發送是成功。有需要的自行再測試吧。
* 函數功能:發送帶附件的郵件給recipient變量中指定的收件人
* 運作環境:安裝并配置好Notes用戶端,并且已經登入到Notes,已經測試Notes 5和Notes 7
* SendMail(cSubject As String, cAttachment As String, cRecipient As String, cCopyToRec AS String, cBodyText)
* 執行成功傳回.T.,失敗傳回.F.
* SendMail("我的測試郵件标題","d:/testfile.txt","zhj/sd/ccb","","我的測試郵件内容") &&附件為d:/testfile.txt
PARAMETERS cSubject As String, cAttachment As String, cRecipient As String, cCopyToRec AS String, cBodyText As String
* 設定對象屬性
LOCAL oMaildb As Object, oMailDoc As Object, oAttachME As Object, oSession As Object,oEmbedObj As Object, lIsRight As Logical
lIsRight = .T.
TRY
oSession = CREATEOBJECT("Notes.NotesSession") &&建立Notes會話
oMaildb=oSession.GetDatabase("","bookmark.nsf") &&打開一個資料庫
IF oMaildb.ISOPEN = .F. &&判斷已經打開
oMaildb.OPENMAIL()
ENDIF
* 建立新郵件
oMailDoc = oMaildb.CREATEDOCUMENT()
oMailDoc.Form = "Memo"
oMailDoc.sendto = cRecipient &&收件人
oMailDoc.copyto = cCopyToRec &&抄送
oMailDoc.Subject = cSubject &&郵件标題
oMailDoc.Body = cBodyText &&郵件内容
oMailDoc.PostedDate=DTOC(DATE()) &&發送日期
* 添加附件
IF NOT EMPTY(cAttachment)
oAttachME = oMailDoc.CREATERICHTEXTITEM("cAttachment")
oEmbedObj = oAttachME.EmbedObject(1454, "", cAttachment, "attachment")
ENDIF
* 發送文檔
oMailDoc.SEND(0)
CATCH
lIsRight = .F.
ENDTRY
RELEASE oMaildb, oMailDoc, oAttachME, oSession, oEmbedObj
RETURN lIsRight