visualizar correo enviado |
Responder | Página <123 |
Autor | |
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 29/Agosto/2020 a las 11:38 |
Buenos dias
Aqui esta el ejemplo que trato de hacer funcionar Sub OutlookEntryID() Dim Application As Outlook.Application Dim olns As Outlook.NameSpace ' If there are more than 500 contacts, change the following line: Dim MyEntryID(500) As String Dim StoreID As String Dim EntryID As String Dim objFolder As Folder Set olns = Application.GetNamespace("MAPI") Set objFolder = olns.GetDefaultFolder(olFolderContacts) ' Get the StoreID, which is a property of the folder. StoreID = objFolder.StoreID ' Set objAllContacts equal to the collection of all contacts. Set AllContacts = objFolder.Items i = 0 ' Loop to get all of the EntryIDs for the contacts. For Each item In AllContacts i = i + 1 MyEntryID(i) = item.EntryID Next ' Randomly choose the 2nd contact to retrieve. Set item = olns.GetItemFromID(MyEntryID(2), StoreID) item.Display End Sub trato de hacerlo funcionar y seguirlo para comprenderlo pero me sale bloque with no establecido, esta copiado del enlace que me pasaste. Saludos |
|
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: 14001 |
Enviado: 29/Agosto/2020 a las 12:41 |
La verdad es que los chicos de M$ se han lucido con el ejemplo, faltan un montón de declaraciones de variables. Prueba con este:
Hay ya alguna variable declarada que vas a usar después. Hazlo 'rular' y con puntos de parada entiende los pasos que da. Analiza Item sus métodos y propiedades porque es lo que vas a tener que usar cuando cambies a la carpeta de mensajes (usa F1 que la ayuda es muy completa).
|
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 29/Agosto/2020 a las 16:07 |
Buenas tardes
el código me funciona perfectamente, pero me surge la duda de que tengo dos cuentas en outlook, una pop3 y otra imap. Siempre me recupera desde la cuenta pop3. Con lo cual he modificado el código a este nuevo teniendo en cuenta eso pero sigue recuperando de la cuenta pop3. Sub Cmd_prueba_contactos_Click() ' If there are more than 500 contacts, change the following line: Dim MyEntryID(500) As String Dim StoreID As String Dim EntryID As String Dim cuenta As String Dim oAccount As Outlook.Account Dim ObjApp As Outlook.Application Dim ObjNs As Outlook.NameSpace Dim ObjFolder As Outlook.Folder Dim ObjMail As Outlook.MailItem Dim ObjAtt As Outlook.Attachments Dim AllContacts As Outlook.Items Dim Item As Object Set ObjApp = CreateObject("Outlook.Application") Set ObjNs = ObjApp.GetNamespace("MAPI") For Each oAccount In Session.Accounts Select Case (oAccount.AccountType) Case Outlook.OlAccountType.olImap Set ObjFolder = ObjNs.GetDefaultFolder(olFolderSentMail) ' Get the StoreID, which is a property of the folder. StoreID = ObjFolder.StoreID ' Set objAllContacts equal to the collection of all contacts. Set AllContacts = ObjFolder.Items i = 0 ' Loop to get all of the EntryIDs for the contacts. For Each Item In AllContacts i = i + 1 MyEntryID(i) = Item.EntryID Next Item ' Randomly choose the 2nd contact to retrieve. Set Item = ObjNs.GetItemFromID(MyEntryID(2), StoreID) Item.Display End Select Next End Sub |
|
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: 14001 |
Enviado: 29/Agosto/2020 a las 18:33 |
Lo de recuperar correos de un archivo (Almacen) Outlook u otro es un charco que ya pisaremos más adelante, cuando seamos capaces de elegir un correo de la carpeta enviados y visualizarlo.
Como dijo nuestro amigo Jack el destripador, por partes . Lo primero vamos a quitar ese almacenamiento de los items en una tabla -que no necesitamos- y a analizar un item, para no liarnos sería bueno cambiar el nombre a la variable AllContacts por AllItems, viendo sus propiedades y métodos. En uno de ellos veremos el campo asunto y a partir de ahí podremos buscar el que necesitamos. Editado por Mihura - 29/Agosto/2020 a las 18:34 |
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 29/Agosto/2020 a las 19:53 |
Buenas tardes
El siguiente código me abre el mensaje de la bandeja de elementos enviados cuyo asunto es "prueba" Sub Cmd_prueba_contactos_Click() Dim ObjApp As Outlook.Application Dim ObjNs As Outlook.NameSpace Dim ObjFolder As Outlook.Folder Dim AllItems As Outlook.Items Dim Item As Object Set ObjApp = CreateObject("Outlook.Application") Set ObjNs = ObjApp.GetNamespace("MAPI") Set ObjFolder = ObjNs.GetDefaultFolder(olFolderSentMail) Set AllItems = ObjFolder.Items Set Item = AllItems.Item("prueba") Item.Display End Sub No hace falta hacer el barrido con el bucle, no? directamente de esta forma de abre el mensaje con un asunto determinado. Es correcto? Saludos |
|
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: 14001 |
Enviado: 29/Agosto/2020 a las 22:00 |
Si te lo abre es correcto ....
Ahora bien, yo le veo una pega y un engorro ... La pega es como tengas dos correos con el mismo asunto ... y el engorro que tienes que mantener una tabla en Access con todos los correos que quieras. Pero si esa solución te vale, .... pues no hay nada más que hablar. |
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 29/Agosto/2020 a las 22:08 |
El asunto se puede codificar de alguna manera para evitar duplicados y respecto a la tabla, la voy almacenando cuando envío los correos.
La cuestión de antes que formulada sobre tener dos cuentas de correo en outlook y que abra de una cuenta o de otra? 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: 14001 |
Enviado: 30/Agosto/2020 a las 10:50 |
No se abre una cuenta u otra, lo que buscas es en las distintas carpetas de los distintos archivos (almacenes) que tengas configurado en Outlook.
Las carpetas se llaman: \\Outlook\Bandeja de Entrada \\micuenta@hotmail.com\Bandeja de Salida \\micuenta@hotmail.com\Archivo ... pero no se pueden acceder directamente por nombre (esto sólo se puede hacer con las carpetas estándard de Outlook). Mírate este enlace, (los ejemplos tendrás que buscarlos en extranjero), por lo menos a mí no me ha salido ninguno en cristiano). |
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 30/Agosto/2020 a las 12:44 |
Muchas gracias por el ejemplo,
La pregunta es porque siempre, con el método que hemos utilizado anteriormente y que me has explicado, me muestra el correo utilizando la misma cuenta?. Tiene que ver con que sea la cuenta predeterminada dentro del programa. Es por ser pop3, Imap..etc Un saludo
|
|
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: 14001 |
Enviado: 30/Agosto/2020 a las 13:28 |
Al mostrar un correo te muestra los campos De: Para: CC: Asunto: propios del correo. No muestra nada más.
... o yo no sé ver lo que te refieres ... Si acaso cuelga una imágen. |
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 30/Agosto/2020 a las 13:45 |
Tengo dos cuentas de correo gestionadas dentro de Outlook,
jaimesor@telefonica.net jaimesor42@gmail.com Al buscar el correo y mostrarlo por entryID, por ejemplo, en la carpeta de enviados (ejemplo que muy bien me has explicado y esta funcionando), siempre me los recupera de la cuenta: jaimesor@telefonica.net. el código siempre acude a ella. porque el código tiene ese comportamiento? Y si quiero que me los recupere de la bandeja de enviados de la otra cuenta?
Saludos |
|
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: 14001 |
Enviado: 30/Agosto/2020 a las 14:00 |
O bien cambias de cuenta predeterminada o bien buscas la carpeta por código, como te decía más arriba cada carpeta tiene una dirección absoluta dependiendo del archivo pst (ost) del que cuelga:
\\Outlook\Bandeja de Entrada \\micuenta@hotmail.com\Bandeja de Salida \\micuenta@hotmail.com\Archivo |
|
javier.mil
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
Colaborador Unido: 10/Agosto/2005 Localización: España Estado: Sin conexión Puntos: 4823 |
Enviado: 01/Septiembre/2020 a las 13:11 |
Buenas , el comportamiento es el normal ,..... en OutLook siempre tiene una cuenta por defecto asignada,......... asi que es normal ese comportamiento y que te devuelva el resultado de tu cuenta de email por defecto (principal) .... Puedes cambiar "a mano" la cuenta por defecto (principal) por otra,...... y veras otros resultados ........ También lo puedes hacer por código ........... adapta lo según tus necesidades Pon el siguiente código en un MODULO standard Public Function funAsignarCuentaOutLook(PonCuentaEmail As String) As Boolean '--------------------------------------------------------------------------------------- ' Procedimiento: funAsignarCuentaOutLook ' Autor: Javier Gomez ("Javier.Mil") ' WEB: www.accessdemo.info ' Proposito: Asignar cuenta por defecto (principal) de OutLook '--------------------------------------------------------------------------------------- On Error GoTo Err_Local Const cMailItem As Byte = 0 Dim objOutlook As Object Dim objEmail As Object Dim objAccounts As Object Dim objAccountNew As Object Dim objAccountTemp As Object Dim booFoundAccount As Boolean funAsignarCuentaOutLook = False Set objOutlook = CreateObject("Outlook.Application") Set objEmail = objOutlook.CreateItem(cMailItem) Rem ******* INICIO ASIGNO LA CUENTA DE OULOOK POR DEFECTO (PRINCIPAL) ********************************** Rem la cuenta que tengas por defecto en tu outlook funciona mejor perooooo Rem tambien se puede enviar desde cualquier otra cuenta que tengas en tu outlook Set objAccounts = objEmail.Session.Accounts Rem busca la cuenta nueva For Each objAccountTemp In objAccounts DoEvents If objAccountTemp.smtpAddress = PonCuentaEmail Then Rem Se ha encontrado la cuenta Set objAccountNew = objAccountTemp booFoundAccount = True ' Debug.Print objEmail.Application.Session.Accounts(objAccountTemp.smtpAddress).DisplayName ' MsgBox objEmail.Application.Session.Accounts(objAccountTemp.smtpAddress).DisplayName Exit For End If Next objAccountTemp If booFoundAccount = False Then MsgBox "No se ha podido encontrar la cuenta " & PonCuentaEmail & " En tu Outlook" & vbNewLine & vbNewLine & _ "Deberias configurar esta cuenta en tu OutLook", vbExclamation, "Email" MsgBox "Aviso: Ahora el programa se cerrara", vbExclamation, "Aviso" Access.Application.DoCmd.Quit acQuitSaveAll Exit Function End If objEmail.SendUsingAccount = objAccountNew Rem *********** FIN ASIGNO LA CUENTA DESDE DONDE SE ENVIA EL EMIAL *********************************** Close_Local: ' objOutlook.Quit ' << No poner esta instruccion Set objOutlook = Nothing Set objEmail = Nothing Set objAccounts = Nothing Set objAccountNew = Nothing Set objAccountTemp = Nothing funAsignarCuentaOutLook = True Exit_Local: On Error GoTo 0 Exit Function Err_Local: funAsignarCuentaOutLook = False Debug.Print Err.Description, vbCritical, "Error N°: " & Err.Number MsgBox Err.Description, vbCritical, "Error N°: " & Err.Number Resume Exit_Local End Function Editado por javier.mil - 01/Septiembre/2020 a las 13:33 |
|
valencianoblaugrana
Asiduo Unido: 20/Junio/2014 Localización: Alicante Estado: Sin conexión Puntos: 493 |
Enviado: 12/Septiembre/2020 a las 13:11 |
Muchísimas gracias por vuestras aportaciones y paciencia conmigo, al fin lo he logrado hacer funcionar.
Se puede cerrar el hilo Reciban un cordial saludo
|
|
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 |