Page 1 of 2
Usando Outlook
Posted: Tue May 14, 2013 6:30 am
by Antonio Linares
Code: Select all | Expand
function Main()
local olApp := CreateObject( "Outlook.Application" )
local olns := olApp:GetNameSpace( "MAPI" )
local oUserFolder := olns:Folders( "alinares@fivetechsoft.com" )
local oFolder := oUserFolder:Folders( "Bandeja de entrada" )
local n
MsgInfo( "Total emails: " + AllTrim( Str( oFolder:Items:Count ) ) )
for n = 1 to Min( oFolder:Items:Count, 10 )
MsgInfo( oFolder:Items( n ):Subject )
next
return nil
Re: Usando Outlook
Posted: Tue May 14, 2013 12:25 pm
by karinha
Maestro, esto és para bajar mis emails?
salu2
Re: Usando Outlook
Posted: Tue May 14, 2013 12:52 pm
by Antonio Linares
Es para leer los emails que haya en tu bandeja de entrada (inbox).
Re: Usando Outlook
Posted: Tue May 14, 2013 1:03 pm
by karinha
Application
===========
Path and name: c:\FWH1303\samples\teste.exe (32 bits)
Size: 1,966,592 bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20130326)
FiveWin Version: FWHX 13.02
Windows version: 6.1, Build 7601 Service Pack 1
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 05/14/13, 10:01:13
Error description: Error TOleAuto/65535 : TOLEAUTO:NEW
Args:
[ 1] = C Outlook.Application
[ 2] = U
[ 3] = U
Stack Calls
===========
Called from: => THROW( 0 )
Called from: source\rtl\win32ole.prg => TOLEAUTO:NEW( 0 )
Called from: source\rtl\win32ole.prg => CREATEOBJECT( 0 )
Called from: teste.prg => MAIN( 5 )
System
======
CPU type: AMD Phenom(tm) II X4 820 Processor 2817 Mhz
Hardware memory: 3072 megs
Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %
Windows total applications running: 10
1 , C:\Program Files\Avira\AntiVir Desktop\avgnt.exe
2 , C:\Program Files\Windows Live\Mail\wlmail.exe
3 , C:\Users\Joao\AppData\Local\Google\Chrome\Application\chrome.exe
4 , C:\Windows\Explorer.EXE
5 Advanced Spyware Remover, C:\Program Files\IObit\Advanced Spyware Remover\ASRtray.exe
6 CiceroUIWndFrame, C:\Windows\system32\taskhost.exe
7 DWM Notification Window, C:\Windows\system32\Dwm.exe
8 MSCTFIME UI, C:\Windows\system32\conhost.exe
9 Prompt de Comando - buildx teste, C:\Windows\system32\cmd.exe
10 TaskEng - Processo de Mecanismo do Agendador de Tarefas, C:\Windows\system32\taskeng.exe
Variables in use
================
Procedure Type Value
==========================
THROW
Param 1: O Class: ERROR
Local 1: U
Local 2: U
TOLEAUTO:NEW
Param 1: C "Outlook.Application"
Param 2: U
Param 3: U
Local 1: O Class: TOLEAUTO
Local 2: O Class: ERROR
CREATEOBJECT
Param 1: C "Outlook.Application"
Local 1: U
MAIN
Local 1: U
Local 2: U
Local 3: U
Local 4: U
Local 5: U
Linked RDDs
===========
DBF
DBFFPT
DBFBLOB
DBFNTX
DataBases in use
================
Classes in use:
===============
1 ERROR
2 HASHENTRY
3 HBCLASS
4 TOLEAUTO
5 HBOBJECT
6 TREG32
Memory Analysis
===============
163 Static variables
Dynamic memory consume:
Actual Value: 0 bytes
Highest Value: 0 bytes
Re: Usando Outlook
Posted: Tue May 14, 2013 1:11 pm
by Antonio Linares
Do you have Outlook installed on your computer ?

Re: Usando Outlook
Posted: Tue May 14, 2013 1:18 pm
by karinha
Antonio Linares wrote:Do you have Outlook installed on your computer ?

No. Windows Live Mail de Windows 7 (seven)
Noo ejiste outlook para windows 7 e si windows live mail.
regards, saludos.
Re: Usando Outlook
Posted: Tue May 14, 2013 7:34 pm
by acuellar
Gracias Antonio.
Funciona perfecto.
Saludos,
Adhemar
Re: Usando Outlook
Posted: Tue May 14, 2013 8:07 pm
by acuellar
Antonio
En algunos Outlook el folder se llama: Bandeja de entrada y en otros Inbox
Como preguntar para saber como está escrito y no de error?
Gracias
Saludos,
Adhemar
Re: Usando Outlook
Posted: Wed May 15, 2013 8:33 am
by Antonio Linares
Adhemar,
No se si será posible localizar esa carpeta por su nombre, porque además pueden existir varias cuentas. En mi caso, para hacer el ejemplo, di de alta mi cuenta de correo y creo una carpeta con mi email, por eso en el ejemplo uso mi email (que es la carpeta en donde Outlook ha puesto mi correo).
Supongo que podremos listar todos los nombres y compararlos con algo determinado como "Inbox", "Bandeja de entrada", etc.
Re: Usando Outlook
Posted: Wed May 15, 2013 8:34 am
by Antonio Linares
Prueba con olsn:Folder( n ):Count y olns:Folder( n ):name en un bucle for...
Re: Usando Outlook
Posted: Wed May 15, 2013 8:36 am
by Antonio Linares
y a su vez puedes revisar las subcarpetas con olsn:Folder( n ):Folders:Count y olsn:Folder( n ):Folders( y ):Name
Re: Usando Outlook
Posted: Wed May 15, 2013 4:48 pm
by acuellar
Gracias Antonio
Hice como me indicas
Code: Select all | Expand
For n:=1 to 7
?olns:Folder( n ):Count
?olns:Folder( n ):name
Next n
y me da este error
Error description: Error Outlook.Application:GETNAMESPACE/0 S_OK: FOLDER
Args:
[ 1] = N 1
Saludos,
Adhemar
Re: Usando Outlook
Posted: Wed May 15, 2013 5:17 pm
by Patricio Avalos Aguirre
Re: Usando Outlook
Posted: Wed May 15, 2013 5:22 pm
by hmpaquito
Supongo que podria funcionar asi:
Code: Select all | Expand
oFolder := oUserFolder:Folders( "Bandeja de entrada" )
IF oFolder == NIL
oFolder:= oUserFolder:Folders( "Inbox" )
IF oFolder == NIL
MsgInfo("¿ Cómo diantres era tu nombre ?")
ENDIF
ENDIF
Aunque tambien se puede hacer asi:
Code: Select all | Expand
oOutLook:= CreateObject("OutLook.Application")
oNameSpace:= oOutLook:GetNameSpace("MAPI")
oNameSpace:Logon()
oFolder:= oNameSpace:GetDefaultFolder(6)
Re: Usando Outlook
Posted: Wed May 15, 2013 6:29 pm
by acuellar
Gracias Distinguidos
Lo solucioné así:
Code: Select all | Expand
oFolder := oUserFolder:Folders( 2 ) //Bandeja de entrada/Inbox
El:
1 Eliminados
2 Bandeja de entrada
3 Bandeja de salida
4 Enviados
5 Borradores
Saludos,
Adhemar