Amiguinho,
Esta mensagem indica que o objeto CDO não foi criado ou voce esta tentando acessar um método ou propriedade não existente nele.
Em tempo as portas de acesso ao Live.com são 25 e 995
Em todo o caso mesmo correndo o risco de apresentar algo já colocado aqui, eu também uso CDO para envio de emails:
...
Private aProvedor := { { "UOL (Universo On-Line)" ,'pop.uol.com.br' ,'smtp.uol.com.br' ,.t., 25,110,.f.},;
{ "Terra" ,'pop.terra.com.br' ,'smtp.terra.com.br' ,.t., 25,110,.f.},;
{ "IG (Internet Generation)",'pop.ig.com.br' ,'smtp.ig.com.br' ,.t.,465,995,.t.},;
{ "iBest" ,'pop.ibest.com.br' ,'smtp.ibest.com.br' ,.t.,465,995,.t.},;
{ "iTelefonica" ,'pop.itelefonica.com.br','smtp.itelefonica.com.br',.t., 25,110,.f.},;
{ "Gmail (Google Mail)" ,'pop.gmail.com.br' ,'smtp.gmail.com.br' ,.t.,465,995,.f.},;
{ "Yahoo" ,'pop.mail.yahoo.com.br' ,'smtp.mail.yahoo.com.br' ,.t., 25,110,.f.},;
{ "Hotmail" ,'pop3.live.com' ,'smtp.live.com' ,.t., 25,995,.t.},;
{ "BOL (Brasil On-Line)" ,'pop3.bol.com.br' ,'smtp.bol.com.br' ,.t., 25,110,.f.},;
{ "ITM Networks" ,'mail.5volution.com.br' ,'mail.5volution.com.br' ,.t., 25,110,.f.} }
nPosicao := 10 //ASCAN( aProvedor, "ITM Networks" )
smtp_Port := aProvedor[ nPosicao, 5 ]
lAuth := aProvedor[ nPosicao, 4 ]
smtp_server := aProvedor[ nPosicao, 3 ]
smtp_SSL := aProvedor[ nPosicao, 7 ]
//
objCDOSYSCon:=TOleAuto():New( "CDO.Configuration" )
objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver"):Value := smtp_server
objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport"):Value := smtp_Port
objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/sendusing"):Value := 2
objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"):Value := 1
objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/sendusername"):Value := smtp_user
objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword"):Value := smtp_pass
//objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"):Value := 30
objCDOSYSCon:Fields:update()
objCDOSYSMail:=TOleAuto():New( "CDO.Message" )
objCDOSYSMail:Configuration := objCDOSYSCon
objCDOSYSMail:From := mail_from
objCDOSYSMail:To := mail_to
objCDOSYSMail:Subject := mail_subject
if lHtml
objCDOSYSMail:HTMLBody := mail_message
else
objCDOSYSMail:TextBody := mail_message
endif
objCDOSYSMail:Send()
...
No caso de usar o BLAT neste exemplo faço uso de sua .DLL:
...
BlatCMD := [ blat.txt] + ;
[ -server ] + alltrim(cserver) + ;
[ -to ] + alltrim(cto) + ;
[ -f ] + alltrim(cf) + ;
[ -mailfrom ] + alltrim(cf) + ;
[ -subject "] + alltrim(csubject) + ["] + ;
[ -r ] + ;
[ -u ] + alltrim(cu) + ;
[ -pw ] + alltrim(cpw) + ;
[ -log "email.log" -debug ] + ;
iif( empty( cAttach ),[],[ -attach "] + alltrim(cattach) + ["])
fErase( "email.log" )
BlatLOG := SendB( BlatCMD )
...
DLL32 FUNCTION SendB( sBlatString AS STRING ) AS LONG PASCAL ;
FROM "SendBlat" LIB "Blat.dll"
No dois métodos eu consegui envio de emails para clientes/servidores Hotmail.
No caso de uso intensivo de chamadas via OLE é boa a pratica de criar o objeto já no inicio do programa e deixar sua variavel visivel.