Tôi có ít kiến thức Lotus Script hoặc Notes/Domino nhưng tôi có một quy trình, được sao chép từ một nơi nào đó từ lâu, cho phép tôi gửi qua Notes từ VBA. Tôi thường chỉ sử dụng thông báo này cho các thông báo nội bộ nơi định dạng không thực sự quan trọng.Gửi email có định dạng Lotus Notes từ Excel VBA
Bây giờ tôi muốn sử dụng để gửi email bên ngoài cho khách hàng và các loại công ty thay vì email tuân theo hướng dẫn kiểu của chúng tôi (kiểu chữ sans-serif về cơ bản).
Tôi sắp nói với họ rằng mã chỉ hoạt động với văn bản thuần túy, nhưng sau đó tôi nhận thấy rằng thường trình tham chiếu một số đối tượng CREATERICHTEXTITEM. Điều này có nghĩa là tôi có thể áp dụng một số loại định dạng nào đó cho chuỗi văn bản nội dung sau nó đã được chuyển đến thường trình thư không? Cũng như duy trì giá trị thương hiệu quý giá của chúng tôi, điều này sẽ khá thuận tiện với tôi để làm nổi bật một số đoạn trong email.
Tôi đã tìm hiểu về 'mạng để xem mã này có thể được điều chỉnh hay không, nhưng không quen thuộc với mô hình đối tượng của Ghi chú và thực tế là tài nguyên Ghi chú trực tuyến dường như phản ánh sự khéo léo của ứng dụng, có nghĩa là tôi đã không 't nhận được rất xa.
Mã:
Sub sendEmail(EmailSubject As String, EMailSendTo As String, EMailBody As String, MailServer as String) Dim objNotesSession As Object Dim objNotesMailFile As Object Dim objNotesDocument As Object Dim objNotesField As Object Dim sendmail As Boolean 'added for integration into reporting tool Dim dbString As String dbString = "mail\" & Application.UserName & ".nsf" On Error GoTo SendMailError 'Establish Connection to Notes Set objNotesSession = CreateObject("Notes.NotesSession") On Error Resume Next 'Establish Connection to Mail File Set objNotesMailFile = objNotesSession.GETDATABASE(MailServer, dbString) 'Open Mail objNotesMailFile.OPENMAIL On Error GoTo 0 'Create New Memo Set objNotesDocument = objNotesMailFile.createdocument Dim oWorkSpace As Object, oUIdoc As Object Set oWorkSpace = CreateObject("Notes.NotesUIWorkspace") Set oUIdoc = oWorkSpace.CurrentDocument 'Create 'Subject Field' Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject", EmailSubject) 'Create 'Send To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo", EMailSendTo) 'Create 'Copy To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo) 'Create 'Blind Copy To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo) 'Create 'Body' of memo Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body") With objNotesField .APPENDTEXT emailBody .ADDNEWLINE 1 End With 'Send the e-mail Call objNotesDocument.Save(True, False, False) objNotesDocument.SaveMessageOnSend = True 'objNotesDocument.Save objNotesDocument.Send (0) 'Release storage Set objNotesSession = Nothing Set objNotesMailFile = Nothing Set objNotesDocument = Nothing Set objNotesField = Nothing 'Set return code sendmail = True Exit Sub SendMailError: Dim Msg Msg = "Error # " & Str(Err.Number) & " was generated by " _ & Err.Source & Chr(13) & Err.Description MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext sendmail = False End Sub
Cảm ơn, điều này có vẻ dễ dàng như tôi tưởng tượng! Tôi đã thử tích hợp mã của bạn vào dự án của tôi, nhưng ngay cả sau khi thêm tài liệu tham khảo vào mỗi thư viện Lotus Notes, tôi vẫn gặp sự cố.Chủ yếu, tôi không nghĩ rằng NotesStream có sẵn thông qua COM, mà kinda đặt kibosh trên toàn bộ điều. – Lunatik
Tôi đã kiểm tra tệp trợ giúp: Không có đề cập đến luồng không được hỗ trợ trong COM, vì vậy nó sẽ hoạt động. Bạn có thể muốn lừa gạt: Lưu trữ HTML thuần túy vào trường và sau đó gọi một tác nhân LotusScript trên đó thực hiện chuyển đổi cho bạn. – stwissel