判官007 发表于 2015-9-14 00:56:56

LotusScript 发送HTML格式邮件(Outlook)1

1 Sub Initialize
2   On Error Goto errormsg
3   Msgbox "RUh3c18001_011:SendMailOfReview Start"
4   Dim sql As String
5   Dim doc As NotesDocument
6   Dim docunid As Variant
7   Dim i As Integer, n As Integer
8   Dim tr As String, table As String, HTMLBody As String, mailsend As String
9   Dim ProcessUNID As String
10   ProcessUNID = "B994EBB76C5F586648257DC4002AB3BB"
11   docunid = Split(WF_Document.docunid(0), ",")
12   n = Ubound(docunid)
13   mailsend = GetSendTo
14   msgbox mailsend
15   If mailsend = "" Then
16         Print "Context-Type:application/text;charset=UTF-8"
17         Print "没有找到邮件接收人,请检查配置文档!"
18         Exit Sub
19   End If   
20   table = "<Table style='BORDER-COLLAPSE: collapse' border=1>"
21   table = table + InitTable
22   For i = 0 To n                  
23         sql = |select * from BPM_DicDocList where WF_DocUNID = '|+docunid(i)+|'|
24         Set doc = rdb.GetDocumentBySql(sql)
25         If Not doc Is Nothing Then
26             table = table + InitTR(doc, ProcessUNID)
27         End If
28   Next
29   table = table + "</Table>"
30   HTMLBody = "1、变更评审清单:<BR>" + table
31   HTMLBody = HTMLBody + "<BR><BR>2、如果您认为以上变更只需发起邮件评审,请在今天10:30前邮件反馈我,谢谢!"   
32   SendTo = Split(mailsend, ",")
33   Call SendMail(SendTo, "变更申请", HTMLBody)
34   Msgbox "RUh3c18001_011:SendMailOfReview End"
35   Print "Context-Type:application/text;charset=UTF-8"
36   Print "OK"
37   Exit Sub
38 errormsg:
39   Msgbox "Rule Error:" & Str(Erl) & "" & Error
40 End Sub
41 Function GetSendTo() As String
42   Dim sql As String
43   Dim confdoc As NotesDocument
44   sql = |select top 1 * from BPM_DicDocList where AppId = 'h3c18001' and FolderId = '003'|
45   Set confdoc = rdb.GetDocumentBySql(sql)
46   If Not confdoc Is Nothing Then
47         GetSendTo = confdoc.meeting(0)
48   Else
49         GetSendTo = ""
50   End If
51 End Function
52 Function SendMail(SendTo As Variant,Subject As String,HTMLBody As String)
53   Dim se As New NotesSession
54   Dim db As NotesDatabase
55   Dim maildoc As NotesDocument
56   Dim body As NotesMIMEEntity
57   Dim header As NotesMIMEHeader
58   Dim stream As NotesStream
59   Set db = se.CurrentDatabase
60   Set stream = se.CreateStream
61   Set maildoc = db.CreateDocument
62   Maildoc.Form = "Memo"
63   Maildoc.Subject = Subject
64   Maildoc.SendTo = SendTo
65   Set body = Maildoc.CreateMIMEEntity
66   'Set header = body.CreateHeader("To")
67   'Call header.SetHeaderVal("guojian KF3530")
68   Call stream.writetext(|<HTML>|)
69   Call stream.writetext(|<body>|)
70   Call stream.writetext(HTMLBody)
71   Call stream.writetext(|</body>|)
72   Call stream.writetext(|</HTML>|)
73   Call body.SetContentFromText(stream,"text/HTML;charset=UTF-8",ENC_NONE)
74   Call maildoc.Send(False)
75   se.ConvertMIME = True
76 End Function
77 Function InitTable() As String
78   Dim table As String   
79   table = "<TR>"
80   table = table + "<TD>电子流号</TD>"
81   table = table + "<TD>主题</TD>"
82   table = table + "<TD>状态</TD>"
83   table = table + "<TD>当前处理人</TD>"
84   table = table + "<TD>申请人</TD>"
85   table = table + "<TD>申请时间</TD>"
86   table = table + "</TR>"
87   InitTable = table
88 End Function
89 Function InitTR(doc As NotesDocument,ProcessUNID As String) As String
90   Dim HStr As String
91   Dim DocUrl As String, sql As String
92   Dim MainDoc As NotesDocument
93   Dim docStatus As String,curUser As String   
94   DocUrl = GetConfigById("SendMailDocUrl")
95   DocUrl = Replace(DocUrl,"{ProcessUNID}",ProcessUNID)
96   DocUrl = Replace(DocUrl,"{DocUNID}",doc.MainDocId(0))
97   docStatus = ""
98   curUser = ""
99   sql = |select top 1 * from BPM_AllDocument where WF_DocUNID = '| + doc.MainDocId(0) + |' |
100   Set MainDoc = rdb.GetDocumentBySql(sql)
101   If Not MainDoc Is Nothing Then
102         docStatus = MainDoc.WF_CurrentNodeName(0)
103         curUser = MainDoc.WF_Author(0)
104   End If
105   HStr = "<TR>"
106   HStr = HStr + "<TD>" + doc.DocNo(0) + "</TD>"
107   HStr = HStr + "<TD><a href='" + DocUrl + "'>" + doc.Subject(0) + "</a></TD>"
108   HStr = HStr + "<TD>" + docStatus + "</TD>"
109   HStr = HStr + "<TD>" + curUser + "</TD>"
110   HStr = HStr + "<TD>" + doc.applyer(0) + "</TD>"
111   HStr = HStr + "<TD>" + doc.applytime(0) + "</TD>"
112   HStr = HStr + "</TR>"
113   InitTR = HStr
114 End Function
  
页: [1]
查看完整版本: LotusScript 发送HTML格式邮件(Outlook)1