visualizar correo enviado |
Responder | Página 123> |
Autor | |
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Tema: visualizar correo enviado Enviado: 19/Agosto/2020 a las 15:02 |
Buenas tardes,
Tengo una BBDD en la que en un formulario envío correos electrónico a través de outlook. Luego de enviados puedo con un botón en ese formulario visualizarlo referenciando su "entryID". Todo me funcionaba a las mil maravillas hasta que me he cambiado de ordenador y reinstalé outlook, y ha dejado de funcionar. El código es el siguiente: DoCmd.OpenForm "enviando", , , , , acDialog ' bucle para esperar que se actualice la carpeta enviados ' cuando notemos que el nº de mensajes cambie, salimos del bucle Do While MensajesEnviados = f.Items.Count DoEvents Loop ' referenciamos el último mail de la carpeta enviados Set Msg2 = f.Items(f.Items.Count) Me.ID_txt = Msg2.EntryID Call Guardar_Click Cual puede ser el fallo. Muchas gracias de antemano
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 19/Agosto/2020 a las 15:40 |
A mi ese bucle Do..While me da un miedo tremendo. Sospecho que se queda ahí dentro "ad infinitum"
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 19/Agosto/2020 a las 19:52 |
Además, al abrir el formulario en Modal (acdialog) el código que sigue a la apertura del mismo no se ejecuta hasta que no se cierra el formulario abierto, por lo que ese bucle de espera no tiene sentido.
|
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 20/Agosto/2020 a las 09:06 |
Antes de cambiar de ordenador y reinstalar el office, me funcionaba sin problemas. Es posible que los "entryID", de los mensajes enviados haya cambiado?
Muchas gracias
|
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 20/Agosto/2020 a las 09:27 |
Un dato mas,
Al ir a visualizar el correo enviado en outlook, a través del botón en formulario cuyo código es Private Sub Visualizar_Click() Dim f As Outlook.Folder Dim Msg2 As Outlook.MailItem Dim rs As DAO.Recordset Dim Ns As Outlook.NameSpace Dim OutLookApp As Outlook.Application Dim strSQL As String strSQL = "SELECT * FROM Tdatos WHERE Not Isnull(EntryID)" Set OutLookApp = CreateObject("Outlook.Application") Set Ns = OutLookApp.GetNamespace("MAPI") Set rs = CurrentDb.OpenRecordset(strSQL) Set f = Ns.GetDefaultFolder(olFolderSentMail) While Not rs.EOF ' Debug.Print rs("EntryID") If ID_txt = rs("EntryID") Then Debug.Print rs("EntryID") Set Msg2 = Ns.GetItemFromID(rs("EntryID")) AQUI ES DONDE SE PARA ' visualizamos el correo Msg2.Display Exit Sub Else rs.MoveNext End If Wend End Sub El error que me sale es: se ha producido el error -2147220991(80040201) en tiempo de ejecución Error en la operación. Se produjo un error desconocido en las interfaces de mensajes. Si el problema persiste reinicie outlook. Saludos |
|
pitxiku
Colaborador Unido: 27/Septiembre/2017 Localización: En mi casa Estado: Sin conexión Puntos: 1510 |
Enviado: 20/Agosto/2020 a las 15:04 |
¿Has probado a recorrer la colección de elementos de la carpeta de Outlook que estás controlando y ver su propiedad EntryId? Microsoft dice que el valor puede cambiar:
- https://docs.microsoft.com/es-es/office/vba/api/outlook.mailitem.entryid Eso, por un lado. Por otro, tú puedes cambiar los mensajes de carpeta y después no encontrarlos. De hecho, yo tengo una serie de carpetas y dejo mis mensajes agrupados por tema, incluyendo los que yo he enviado. Editado por pitxiku - 20/Agosto/2020 a las 15:04 |
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 21/Agosto/2020 a las 09:42 |
Buenos días,
Acabo de comprobar la posible causa del error. Normalmente estoy enviando los correos desde una cuenta predeterminada que tiene mas de 400 mensajes en la carpeta de enviados. Lo he comprobado con otra cuenta que tiene 1 correo en la carpeta de enviados y ha funcionado perfectamente. Es posible que el bucle que tengo programado para extraer el último "EntryID" de la carpeta "enviados" se quede "ad infinitum" como bien me comentaba Xavi. La única solución es borrar correos de la carpeta enviados. Ven alguna otra solución? Muchas gracias |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 21/Agosto/2020 a las 10:40 |
Estaria bien saber el objetivo del conjunto de acciones. Voy a suponer:
- envías correo por automatización - abres correo - guardas el correo en disco Si es así, lo que debes hacer es un .SaveAs del objeto MailItem antes del .Send Si no es así... explica lo que pretendes que el sistema haga. Un saludo
|
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 21/Agosto/2020 a las 11:08 |
Buenos días Xavi,
Lo que pretendo es que una vez enviado el correo por automatización, el "EntryID" se guarde en el correspondiente registro de la tabla "correos enviados" con la finalidad de que más adelante, cuando se requiera, desde el mismo registro y a través de un formulario con un botón "visualizar", poder recuperar el correo que envió Outlook, consultar el adjunto que llevaba y demás. Muchas gracias |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 21/Agosto/2020 a las 13:35 |
Para lo que tú quieres hacer no te puedes basar en el EntryID ya que puede cambiar sin previo aviso.
Lo suyo es que abras la carpeta de correo (por automatización) y muestres los correos existentes al usuario, para ello conviene tener o un muy buen árbol de carpetas o una identificación que te permita individualizar el mensaje, se suele utilizar una clave en el asunto. |
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 22/Agosto/2020 a las 13:21 |
Muchas gracias por la aportación.
Entiendo que poner una clave en el asunto para identificarlo como único, significa que la persona que reciba ese correo la va a ver. Por eso lo del EntryID Muchas gracias |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 22/Agosto/2020 a las 13:33 |
Si te fijas, en los correos que cambias con empresas en el asunto llevan una clave (un nº de asunto, un Id, algo ....) que además te piden que no lo cambies.
Por esa clave es por dónde después se buscan los correos en la empresa. |
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 22/Agosto/2020 a las 13:38 |
Pues la verdad es que no me he fijado. Algun ejemplo ilustrativo?
Muchas gracias |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 22/Agosto/2020 a las 17:36 |
¿No has dado / seguido nunca un parte del seguro por correo?
¿O un ticket con un servidor de internet?
|
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 22/Agosto/2020 a las 18:04 |
Se trata de poner un número distintivo en el asunto del correo y luego buscarlo en la carpeta de enviados tal y como lo tengo yo montado pero en vez del entryID, identificar el numero de asunto. Seria asi?
|
|
Responder | Página 123> |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |