Tengo poco conocimiento de Lotus Script o Notes/Domino pero tengo un procedimiento, copiado desde algún lugar hace mucho tiempo, que me permite enviar correos electrónicos a través de Notes desde VBA. Normalmente solo uso esto para notificaciones internas donde el formato no ha importado realmente.Envío de correos electrónicos formateados de Lotus Notes desde Excel VBA
Ahora quiero usar esto para enviar correos electrónicos externos a un cliente, y los tipos corporativos prefieren que el correo electrónico cumpla con nuestra guía de estilo (una tipografía sans-serif básicamente).
Estaba a punto de decirles que el código solo funciona con texto sin formato, pero luego noté que la rutina hace referencia a algún tipo de objeto CREATERICHTEXTITEM. ¿Significa esto que podría aplicar algún tipo de formato a la cadena de texto del cuerpo después de que se ha pasado a la rutina de correo? Además de mantener nuestros preciosos valores de marca, sería muy útil para mí resaltar ciertos pasajes en el correo electrónico.
He tenido una excavación sobre la red para ver si este código podría adaptarse, pero no estoy familiarizado con el modelo de objetos de Notes y el hecho de que los recursos en línea de Notes parezcan reflejar la obtusidad de la aplicación significaba que no lo hacía no llegues muy lejos
El código:
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
¡Gracias, parece tan fácil como lo había imaginado! Traté de integrar tu código en mi proyecto, pero incluso después de agregar referencias a cada biblioteca de Lotus Notes, sigo teniendo problemas.Principalmente, no creo que NotesStream esté disponible a través de COM, lo que pone un poco de todo de cabeza. – Lunatik
Revisé el archivo de ayuda: no se menciona que la transmisión no sea compatible con COM, por lo que debería funcionar. Es posible que desee hacer trampa: almacene el HTML simple en el campo y luego llame a un agente de LotusScript que realice la conversión por usted. – stwissel