Jump to content
Fivewin Brasil

Outlook Express/Windows Live Mail


kapiaba

Recommended Posts

Galera, ajuda ahi:

Outlook Express/Windows Live Mail:

Se não tem Outlook Express ou Windows Live Mail Instalado, como que vocês fazem para ENVIAR EMAIL, por exemplo, meu ERRSYSW.PRG, está preparado para em caso de "quebra", enviar um email "silencioso" para mim, sem que o "uçuário" saiba. Mas, se: Outlook Express ou Windows Live Mail não estiverem instalados e como padrão, o programa não envia.

Como saio deste enrosko??

Agradeço desde já as colaborações.

Abs.

Link to comment
Share on other sites

Segue aí João.


#include "FiveWin.ch"

#include "CdoSys.ch"


#define WS_3DLOOK 4

#define CLR_HBROWN nRGB( 205, 192, 176 )

#define CLR_NBLUE nRGB( 142, 171, 194 )


//---------------------------------------------------------------------------------------------//

Function fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort )

Local oCfg, oMsg, oError, nEle, cToken, ;

aAttach := {}, ;

lAuth := ! Empty( cUser ) .and. ! Empty( cPass ), ;

nSendOpt := 2 // send using: 1 = pickup folder 2 = port

Default nPort := 25, ;

cSubject := "", ;

cBody := ""

If "GMAIL.COM" $ Upper( cMailServer ) .and. ( Empty( cUser ) .or. Empty( cPass ) )

MsgStop( "Com GMail são requeridos nome do usuario e senha", "Atenção" )

Return .F.

EndIf

CursorWait()

nEle := 1

While ! Empty( cToken := StrToken( cAttach, nEle++, "," ) )

AAdd( aAttach, cToken )

EndDo

Try

oCfg := CreateObject( "CDO.Configuration" )

With Object oCfg:Fields

:Item( cdoSMTPServer ):Value := Trim( cMailServer )

:Item( cdoSMTPServerPort ):Value := nPort

:Item( cdoSendUsing ):Value := nSendOpt

If lAuth

:Item( cdoSMTPAuthenticate ):Value := 1

:Item( cdoSendUserName ):Value := Trim( cUser )

:Item( cdoSendPassword ):Value := Trim( cPass )

:Item( cdoSMTPUseSSL ):Value := 1

EndIf

:Update()

End With

oMsg := CreateObject( "CDO.Message" )

With Object oMsg

:Configuration := oCfg

:From := Trim( cFrom )

:To := Trim( cTo )

:Subject := Trim( cSubject )

:TextBody := Trim( cBody )

For nEle := 1 To Len( aAttach )

:AddAttachment := AllTrim( aAttach[ nEle ] )

Next

If ! Empty( cBCC )

:BCC := Trim( cBCC )

EndIf

:Send()

End With

Catch oError

CursorArrow()

/*

MsgStop( "Não foi possível enviar a mensagem" + CRLF + "Error: " + cValToChar( oError:GenCode) + CRLF + ;

"SubC: " + cValToChar( oError:SubCode ) + CRLF + "OSCode: " + cValToChar( oError:OsCode ) + CRLF + ;

"SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + "Mensagem: " + oError:Description )

*/

oCfg := Nil

oMsg := Nil

Return .F.

End Try

oCfg := Nil

oMsg := Nil

// SndPlaySound( GetWinDir() + "\media\Tada.wav", 0 )

CursorArrow()

Return .T.

//---------------------------------------------------------------------------------------------//

Static Function fAddAttach( oGet )

Local cFile, ;

cAttach := oGet:VarGet()

cFile := cGetFile( "*.*", "Selecione o arquivo" )

If ! Empty( cFile )

cAttach := Lower( PadR( AllTrim( cAttach ) + If( ! Empty( cAttach ), ",", "" ) + AllTrim( cFile ), 180 ) )

EndIf

oGet:cText( cAttach )

Return Nil

//---------------------------------------------------------------------------------------------//

function email_suporte()

Local cMailServer := PadR( "smtp.ig.com.br", 60 ), ;

cFrom := PadR( "meuemail@ig.com.br", 60 ), ;

cTo := PadR( "emailcomcopia@hotmail.com", 180 ), ;

cBCC := PadR( "meuemail@ig.com.br", 180 ), ;

cAttach := "",;

cSubject := "Erro - Empresa: "+xNome_Empre, ;

nPort := 465, ;

cUser := "meuemail@ig.com.br", ;

cPass := "minhasenha", ;

cBody := memoread("Error.Log")+CRLF+"SQLLIB"+CRLF+memoread("sqllog.txt")


Local cBody1:=memoread("Error.Log")

Local cBody2:=memoread("sqllog.txt")

sysrefresh()

cBody := cBody1 + CRLF + "SQLLIB" + CRLF + cBody2

sysrefresh()

aTamanhoFile := directory(cdirlocal + 'Error.Log')

If aTamanhoFile[1,2] < 10000

fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort )

endif

FErase("Error.Log")

FErase("sqllog.txt")

Return .T.

// -------------------------------------------------------------------------- //


Daniel Segura

Link to comment
Share on other sites

Link to comment
Share on other sites

conteúdo do CdoSys.ch

#ifndef _CDOSYS_CH
#define _CDOSYS_CH
#endif
Daniel Segura

Daniel

Sendo que isso não atende a postagem do João

Na verdade esta duvida é minha.

O Cdo esta usando as configurações do Outlook express ou do Microsoft outlook que é exatamente o que estou tentando evitar

devido a em uma série de clientes os terminais de venda estarem com uma configuração minima de instalação de windows

não tendo nada instalado como por exemplo os programas do Microsoft Office

e com isso o envio de email não pode usar o Cdo.

Link to comment
Share on other sites

Concordo com o Marcelo, depois de comparar com minha rotina, me pareceu a mesma cousa.

Eu já tinha notado que alguns administradores de rede, desligam o Internet explorer no windows server, e isto afetava o funcionamento do programa, ai descobrir estar função para tentar avisar o "Jumento" para religar o internet explorer.

http://fivewin.com.br/index.php?/topic/21944-verificar-se-o-internet-explorer-esta-onoff/?hl=%2Binternet+%2Bexplore#entry264820

Mas a idéia do Marcelo Ferro me interessa muito, pois fui testar em windows 7 que o windows live mail não está padrão, e ele não deixa enviar o email. Ai, não podyyyyyyyy kkkkkkkkkkkkkkkkkk

Aguardando novas idéias.

Obg. abs,

Link to comment
Share on other sites

Kapi,

Veja o TestSmtp.prg, hoje em dia eu ainda uso envio por e-mail dos erros, mas estou mudando tudo para o DropBox, (Certeza de chegar, não para na caixa de span, vem muito mais rápido que alguns provedores de e-mail, e uso também para atualização do programa ;) )

Olá Vagner , bom dia

O Smpt tbem não manda o email se a conta de envio for uma conta do Hotmail -> smtp.live.com

Link to comment
Share on other sites

Fala Evandro, blz ?

www.dropbox.com/Install

Vc cria uma conta no drop, seu cliente tb cria uma, vc compartilha uma pasta com ele e pronto ;) vc copia o que quiser nessa pasta e o cliente recebe (vice e versa).

Eu geralmente instalo o dropbox no servidor, e compartilho, então modifiquei o errorsys e mando o error.log para essa pasta, recebo arrumo o que precisar e mandou o programa novamente, lógico que tenho um "robô" que verifica o programa e instala, tudo automático :D

Link to comment
Share on other sites

Agora sim, funciona perfeitamente. Só não se vai funcionar se não tiver outlook express/Windows Live mail Instalado.



// Testing FiveWin new Internet Outgoing mail (SMTP protocol) Class
// Baseado no exemplo: C:\FWH1306\SAMPLES\TESTSMTP.PRG
// Special Thanks: Vagner Wirts.

#include "FiveWin.ch"

static oWnd

//----------------------------------------------------------------------------//

FUNCTION Main()

local oBar

DEFINE WINDOW oWnd TITLE "Sending Internet Mail from FiveWin"

DEFINE BUTTONBAR oBar _3D OF oWnd

DEFINE BUTTON OF oBar ACTION SendMail() TOOLTIP "Send Mail"

SET MESSAGE OF oWnd TO "Ready" NOINSET DATE TIME KEYBOARD

ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------------------//

FUNCTION SendMail()

local oOutMail, cIP, nPort, lAuth, cUser, cPassword, cIPServer

Default nPort := 587, ;
lAuth := .T., ; // Obrigatorio ser .T. no meu caso.
cUser := "joao@pleno.com.br", ;
cPassword := "MISENHA", ;
cIPServer := ""

oWnd:SetMsg( "Envio de Email Via Internet..." )

WSAStartup()

// Classe: TSMPT.PRG
//METHOD New( cIPServer, nPort, lAuth, cUser, cPassword ) CONSTRUCTOR

oOutMail := TSmtp():New( cIPServer := GetHostByName( "smtp.pleno.com.br" ) )

oOutMail := TSmtp():New( cIPServer, nPort, lAuth, cUser, cPassword )

MsgInfo( cIPServer ) // cIP

oOutMail:bConnecting = { || oWnd:SetMsg( "Conectando ao smtp.pleno.com.br..." ) }
oOutMail:bConnected = { || oWnd:SetMsg( "Conectado" ) }
oOutMail:bDone = { || oWnd:SetMsg( "Mensagem Enviada com Sucesso" ) }

oOutMail:SendMail( "joao@pleno.com.br",; // From
{ "joao@pleno.com.br" },; // To
"Mensagens de Erros do Programa",; // Msg Text
"*** CONTROLE DE ERROS ***",; // Subject
{ "error.log" } ) // attached files

// { "error.log", "testsmtp.zip" } ) // attached files

RETURN NIL

//----------------------------------------------------------------------------//
Link to comment
Share on other sites

Enviando para mais de 1 email... Special Thanks ao Marcelo - Marca, que me ajudou muito.

   oOutMail:SendMail( "joao@pleno.com.br",;     // From
                      { "joao@pleno.com.br", ;
                        "marcelo@marcainformatica.com.br", ;
                        "marca@compuland.com.br" },; // To
                        "Mensagens de Erros do Programa",; // Msg Text
                        "*** CONTROLE DE ERROS *** usando 3 emails",; // Subject
                      { "error.log" } )  // attached files
abs,
Link to comment
Share on other sites

  • 1 month later...

Kapiaba , to com problema no envio de email , e ai voce consegui resolver , se consegui da uma força ai como ficou sua rotina ?

a minha esta assim peguei essa rotina no forum e de uns tempos pra ca nao funciona mais , agora fui cobrando pelos clientes e to apanhando :

o erro:

*******

Não foi possivel enciar mensagem para

xxxx@yahoo.com.br

error: 1001

subc: 3

oscode:0

subsystem:cdo.message

mensagem: disp_e_membernotfound

Function fSendMail( cProvedor, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass )
******************
Private oCfg, oMsg, oError, nEle, cToken, ;
aAttach := {}, ;
lAuth := ! Empty( cUser ) .and. ! Empty( cPass ), ;
nSendOpt := 2 // send using: 1 = pickup folder 2 = port 3 = remote mail server
*
* Nome Provedor, pop3, smtp, Autenticacao, portasmtp, portapop, ssl
*
Private aProvedor := { {"UOL (Universo On-Line)" , 'pop.uol.com.br' , 'smtp.uol.com.br' , .t. , 025,110,.f.}, ;
{"Terra" , 'pop.terra.com.br' , 'smtp.terra.com.br' , .t. , 025,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.},;
{"iTelefônica" , 'pop.itelefonica.com.br' , 'smtp.itelefonica.com.br' , .t. , 025,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. , 025,110,.f.},;
{"Hotmail" , 'pop3.live.com' , 'smtp.live.com' , .t. , 025,995,.t.},;
{"BOL (Brasil On-Line)" , 'pop3.bol.com.br' , 'smtp.bol.com.br' , .t. , 025,110,.f.} ,;
{"Fotosombra" , 'pop.fotosombra.com.br' , 'smtp.fotosombra.com.br' , .t. , 025,110,.f.} }
Default cSubject := "", ;
cBody := ""
*
nPosicao := ASCAN(aProvedor, {|a| Upper(AllTrim(a[1])) = Upper(AllTrim(cProvedor)) } )
*
nPort := aProvedor[nPosicao, 5]
lAuth := aProvedor[nPosicao, 4]
cMailServer := aProvedor[nPosicao, 3]
cSSL := aProvedor[nPosicao, 7]
*
If "GMAIL.COM" $ Upper( cMailServer ) .and. ( Empty( cUser ) .or. Empty( cPass ) )
MsgStop( "Com GMail são requeridos nome do usuario e senha", "Atenção" )
Return .f.
EndIf
CursorWait()
nEle := 1
lRet := .f.
While ! Empty( cToken := StrToken( cAttach, nEle++, "," ) )
AAdd( aAttach, AllTrim(cToken) )
EndDo
Try
oCfg := CREATEOBJECT( "CDO.Configuration" )
WITH OBJECT oCfg:Fields
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value = AllTrim(cMailServer)
If lAuth
End
:Update()
END WITH
oMsg := CreateObject( "CDO.Message" )
With Object oMsg
:Configuration = oCfg
:From = AllTrim(cFrom)
:To = AllTrim(cTo)
:Subject = AllTrim(cSubject)
:TextBody = AllTrim(cBody)
For nEle := 1 To Len( aAttach )
:AddAttachment = AllTrim(aAttach[ nEle ])
Next
If ! Empty( cBCC )
:BCC = AllTrim(cBCC)
EndIf
:Send()
End With
lRet := .t.
Catch oError
CursorArrow()
MsgStop( "Não foi possível enviar a mensagem para "+AllTrim(cTo) + CRLF + ;
"Error: " + cValToChar( oError:GenCode) + CRLF + ;
"SubC: " + cValToChar( oError:SubCode ) + CRLF + ;
"OSCode: " + cValToChar( oError:OsCode ) + CRLF + ;
"SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + ;
"Mensagem: " + oError:Description )
lRet := .f.
End Try
oCfg := Nil
oMsg := Nil
If lRet
MsgInfo("Email Enviado com Sucesso","Email")
End
CursorArrow()
Return ( lRet )
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...