在Notes编程里面发送附件的方式至少有两种,一种是通过NotesRichTextItem的EmbedObject方法将附件扔到$File域中,然后发送文档;另一种还是通过上面说得NotesMimeEntity和NotesMimeHeader的方式来发送。这里只说后面一种:
Sub SendMIMEMail
On Error Goto ErrorHandler
sAttach$ = “struts.txt”
session.ConvertMIME = False
Dim doc As NotesDocument
Set doc = curDb.CreateDocument
Call doc.ReplaceItemValue(”Form”, “Memo”)
Call doc.ReplaceItemValue(”Principal”, “xxx@https://www.wendangku.net/doc/bc16787205.html,”)
Dim body As NotesMimeEntity
Dim header As NotesMimeHeader
Set body = doc.CreateMIMEEntity(”body”)
Set header = body.CreateHeader(”Content-Type”)
Call header.SetHeaderVal(”multipart/related”)
Set header = body.CreateHeader(”Subject”)
Call header.SetHeaderVal(”MIME TEST!!!!”)
Set header = body.CreateHeader(”To”)
Call header.SetHeaderVal(”xxx@https://www.wendangku.net/doc/bc16787205.html,“)
Dim stream As NotesStream
Set stream = session.CreateStream
Dim child As NotesMimeEntity
Set child = body.CreateChildEntity
Call stream.WriteText(sHtml$)
Call child.SetContentFromText(stream, “text/html;charset=gb2312″, ENC_NONE)
Call stream.Close()
Set child = body.CreateChildEntity
Set header = child.CreateHeader(”Content-Type”)
Call header.SetHeaderVal(”multipart/related”)
Set header = child.CreateHeader(”Content-Disposition”)
Call header.SetHeaderVal(”attachment; filename=” + sAttach$)
Set header = child.CreateHeader(”Content-ID”)
Call header.SetHeaderVal(sAttach$)
If stream.Open(”C:\” + sAttach$) Then
If stream.Bytes <> 0 Then
Call child.SetContentFromBytes(stream, “application/octet-stream” + {”}, ENC_IDENTITY_BINARY)
End If
End If
Call stream.Close()
session.ConvertMIME = True
Call doc.Send(False)
Exit Sub
ErrorHandler: Call curLog.Debug(1)
End Sub