Problemas al enviar objeto a lotus notes

Usuario
Buenos días, espero que alguien pueda ayudarme.
Lo que quiero hacer es pasar unos datos de una query a un *.xls en el path que yo le diga (Esta parte ya la tengo) y seguidamente quiero que me abra el lotus notes(que es mi programa de correo predeterminado) con una pesteña de nuevo mensaje (a modo de hyperlink)para la dirección, asunto y texto que yo le diga con el archivo adjunto que he creado anteriormente.
He intentado 2 cosas:
Esta me parece la más fácil y correcta pero no funciona:
Public Function ENVIAR_CORREO()
DoCmd. SendObject,,, "dirección del destinatario",,, "Asunto", "Cuerpo del mail", True, "PATH del archivo"
End Function
Parece ser que vba lo compila bien pero en el notes aparece un error que dice
"LOTUS NOTES MAILMAN ERROR" Cadena clase no válida
Y seguidamente vuelve a vba y me dice que no puede enviar este mensaje de correo. Aunque le ponga los parámetros tipo de objeto y nombre y lo inserte como tabla o query tampoco funciona
Lo 2º que he intentado. Esto que me parece más complicado y no la entiendo muy bien ya que me la ha pasado un compañero que tampoco entiende porqué no funciona.
Public Function ENVIAR_CORREO()
    Dim MiFichero As String
    Dim DirEmail As String
    Dim WMail As String
    Dim SesLotus As Object
    Dim Doc As Object
    Dim LotObject As Object
    Dim DireccionMAil As String
    Dim RutaMail As String
    Dim db As Object
    Dim RstItem As Object
''asignacion de objetos Notes
    Set SesLotus = CreateObject("Notes.NotesSession")
    Set db = SesLotus.GETDATABASE("", "names.nsf")
    Set Doc = db.CREATEDOCUMENT()
    MiFichero = "Path de mi fichero"
    WMail = "direccion del destinatario"
    Doc.subject = "Asunto"
    Set RstItem = Doc.CREATERICHTEXTITEM(Doc, "Body")
    Set LotObject = RstItem.EMBEDOBJECT(1454, "", MiFichero, "")
    Call Doc.SEND(False, WMail)
End Function
En este caso vba me dice que el componente ActiveX no puede crear el objeto.
Por favor necesito ayuda, por más que me rompo la cabeza no soy capaz de encontrar el problema.

1 respuesta

Respuesta
1
Acá et paso el código, los paramettros son:
Subject = "asunto del mensaje" - Attachment = "Path del archivo a adjuntar" - Recipient = "Receptores del mail" - BodyText = "Cuerpo del mensaje" - SaveIt = false (o true) dependiendo si te interesa guardar o no el mail en la base de correo
Public Sub SendNotesMail(Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean)
    Dim Maildb As Object 'Base de mail
    Dim UserName As String 'Nombre del usuario notes
    Dim MailDoc As Object 'Documento de mail
    Dim AttachME As Object ' richtextfile
    Dim Session As Object 'Sesion en notes
    Dim EmbedObj As Object 'Attach
    Set Session = CreateObject("Notes.NotesSession")
'EL CODIGO FUNCIONA SIN INICIALIZAR, POR LO TANTO DEJA COMENTADAS LAS 2 LINEAS 'DE ABAJO, PERO SI LLEGARA A TIRARTE ERROR PORQUE FALTA INICIALIZAR, 'DESCOMENTA UNA Y PROBA, SI NO FUNCIONARA, COMENTALA LA PRIMERA Y PROBA CON 'LA SEGUNDA
' Call Session.Initialize("tu_contraseña") 'Pass de tu user de lotus
' Call Session.InitializeUsingNotesUserName("Usuario", "contraseña")
    UserName = Session.UserName
    Set Maildb = Session.GETDATABASE("Servidor_donde_esta_la_base_de_correo", "Path_de_tu_base_de_correo")
     If Maildb.ISOPEN = True Then
     Else
         Maildb.OPENMAIL
     End If
   Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    MailDoc.sendto = Recipient
    MailDoc.Subject = Subject
    MailDoc.Body = BodyText
    MailDoc.SAVEMESSAGEONSEND = SaveIt
    If Attachment <> "" Then
        Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
        Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
    End If
    MailDoc.PostedDate = Now()
    MailDoc.SEND 0, Recipient
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
Espero que te sirva, ¿contame cómo fue eso dale?
Hola amigo,
He probado tu código, y el error que me da es en el momento de crear el objeto, de la misma manera que el otro código que probé ( "El componente ActiveX no puede crear el objeto).
Yo creo que el problema puede estar en el registro del sistema que debe faltarme alguna DLL con las clases del Notes o algo por el estilo, pero no tengo ni idea de como mirarlo y mucho menos solucionarlo.
No obstante agradezco enormemente tu ayuda. Si se te ocurriese alguna otra cosa, la probaré con mucho interés.
Muchas Gracias. Un Saludo.
El código funciona bien porque antes de pasártelo lo probé, asique el problema tiene que ser como vos decís, transcribime la linea exacta donde tira el error
En esta línea: Set Session = CreateObject("Notes.NotesSession") es cuando dice lo que te comenté en el mensaje anterior. (ActiveX no puede crear el objeto).
En el directorio donde tienes el lotus instalado, ejemplo C:\Archivos de programa\Lotus\notes
Busca el archivo de registro de windows llamado notesw32. Reg y hacele doble click, te va a preguntar si lo quieres agregar al registro, le decís que si y volvé a probar el código..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas