kapiaba Posted August 5, 2014 Report Share Posted August 5, 2014 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. Quote Link to comment Share on other sites More sharing options...
CIACPD Posted August 5, 2014 Report Share Posted August 5, 2014 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 5, 2014 Author Report Share Posted August 5, 2014 Obrigado Daniel, #include "CdoSys.ch" ?? Donde está? Abs Quote Link to comment Share on other sites More sharing options...
CIACPD Posted August 5, 2014 Report Share Posted August 5, 2014 conteúdo do CdoSys.ch #ifndef _CDOSYS_CH #define _CDOSYS_CH #define cdoSMTPServer "http://schemas.microsoft.com/cdo/configuration/smtpserver" #define cdoSMTPServerPort "http://schemas.microsoft.com/cdo/configuration/smtpserverport" #define cdoSendUsing "http://schemas.microsoft.com/cdo/configuration/sendusing" #define cdoSMTPPickupFolder "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory" #define cdoSMTPAuthenticate "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" #define cdoSendUserName "http://schemas.microsoft.com/cdo/configuration/sendusername" #define cdoSendPassword "http://schemas.microsoft.com/cdo/configuration/sendpassword" #define cdoSMTPUseSSL "http://schemas.microsoft.com/cdo/configuration/smtpusessl" #define cdoSMTPConnectionTimeout "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" #endif Daniel Segura kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 5, 2014 Author Report Share Posted August 5, 2014 conteúdo do CdoSys.ch #ifndef _CDOSYS_CH #define _CDOSYS_CH #define cdoSMTPServer "http://schemas.microsoft.com/cdo/configuration/smtpserver" #define cdoSMTPServerPort "http://schemas.microsoft.com/cdo/configuration/smtpserverport" #define cdoSendUsing "http://schemas.microsoft.com/cdo/configuration/sendusing" #define cdoSMTPPickupFolder "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory" #define cdoSMTPAuthenticate "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" #define cdoSendUserName "http://schemas.microsoft.com/cdo/configuration/sendusername" #define cdoSendPassword "http://schemas.microsoft.com/cdo/configuration/sendpassword" #define cdoSMTPUseSSL "http://schemas.microsoft.com/cdo/configuration/smtpusessl" #define cdoSMTPConnectionTimeout "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" #endif Daniel Segura Valeu, obrigado. Quote Link to comment Share on other sites More sharing options...
Marca Posted August 5, 2014 Report Share Posted August 5, 2014 conteúdo do CdoSys.ch #ifndef _CDOSYS_CH #define _CDOSYS_CH #define cdoSMTPServer "http://schemas.microsoft.com/cdo/configuration/smtpserver" #define cdoSMTPServerPort "http://schemas.microsoft.com/cdo/configuration/smtpserverport" #define cdoSendUsing "http://schemas.microsoft.com/cdo/configuration/sendusing" #define cdoSMTPPickupFolder "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory" #define cdoSMTPAuthenticate "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" #define cdoSendUserName "http://schemas.microsoft.com/cdo/configuration/sendusername" #define cdoSendPassword "http://schemas.microsoft.com/cdo/configuration/sendpassword" #define cdoSMTPUseSSL "http://schemas.microsoft.com/cdo/configuration/smtpusessl" #define cdoSMTPConnectionTimeout "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" #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. kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 5, 2014 Author Report Share Posted August 5, 2014 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, Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 6, 2014 Author Report Share Posted August 6, 2014 Marcelo, veja este exemplo com gMail se serve. http://forums.fivetechsupport.com/viewtopic.php?f=6&t=28990 abs Quote Link to comment Share on other sites More sharing options...
Marca Posted August 6, 2014 Report Share Posted August 6, 2014 Marcelo, veja este exemplo com gMail se serve. http://forums.fivetechsupport.com/viewtopic.php?f=6&t=28990 abs Bom dia Joao Este exemplo usa o Cdo tbem Quote Link to comment Share on other sites More sharing options...
vagner Posted August 6, 2014 Report Share Posted August 6, 2014 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 ) kapiaba 1 Quote Link to comment Share on other sites More sharing options...
Marca Posted August 6, 2014 Report Share Posted August 6, 2014 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 7, 2014 Author Report Share Posted August 7, 2014 Alguém usa BLAT.DLL conforme dica do Rochinha? http://www.pctoledo.com.br/forum/viewtopic.php?f=2&p=90229#p90229 Abs, Quote Link to comment Share on other sites More sharing options...
aferra Posted August 7, 2014 Report Share Posted August 7, 2014 kapi, já usei e funciona bem, porem é uma solução externa... kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 7, 2014 Author Report Share Posted August 7, 2014 kapi, já usei e funciona bem, porem é uma solução externa... Entendi, você consegue fazer este trem aqui funcionar? Não consigo nem a pau. http://forums.fivetechsupport.com/viewtopic.php?f=6&t=28998 abs Quote Link to comment Share on other sites More sharing options...
aferra Posted August 7, 2014 Report Share Posted August 7, 2014 essa é uma opção que qdo eu tinha fwh2.7 funcionava, depois passei para 9,07 e desde então não consegui mais. Quote Link to comment Share on other sites More sharing options...
aferra Posted August 7, 2014 Report Share Posted August 7, 2014 mas eu tentei junto com o Marcelo fazer funcionar, porem em vão, a coisa não anda...mas assim que puder volto a tentar, pois o correto nesse caso e não ter mesmo que depender de outlook's Quote Link to comment Share on other sites More sharing options...
evandro Posted August 7, 2014 Report Share Posted August 7, 2014 Olá, Grande Vagner, blz? 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 ) Como é este "trem"? kapiaba 1 Quote Link to comment Share on other sites More sharing options...
vagner Posted August 8, 2014 Report Share Posted August 8, 2014 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 Quote Link to comment Share on other sites More sharing options...
evandro Posted August 8, 2014 Report Share Posted August 8, 2014 Olá, Vagner, como mandar de dentro do sistema um arquivo para o Drop? Quote Link to comment Share on other sites More sharing options...
vagner Posted August 8, 2014 Report Share Posted August 8, 2014 Evando, É só uma pasta , basta copiar ou cria direto na pasta por exemplo cTexto := "Estou no drop" MemoWrit("\DropBox\SuaPastaCompartilhada\Teste.Txt",cTexto) Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 12, 2014 Author Report Share Posted August 12, 2014 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 //----------------------------------------------------------------------------// Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 13, 2014 Author Report Share Posted August 13, 2014 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, Quote Link to comment Share on other sites More sharing options...
JUDSON ROSA Posted September 26, 2014 Report Share Posted September 26, 2014 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) :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value = nPort :Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" ):Value = nSendOpt :Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"):Value = 1000 If lAuth :Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ):Value = Alltrim(cUser) :Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ):Value = AllTrim(cPass) :Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" ):Value = lAuth :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value = cSSL 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 ) Quote Link to comment Share on other sites More sharing options...
kapiaba Posted September 29, 2014 Author Report Share Posted September 29, 2014 Você quer usar direto pelo windows live/outlook abrindo a janela, ou direto sem o usuário ver? abs. Quote Link to comment Share on other sites More sharing options...
JUDSON ROSA Posted September 30, 2014 Report Share Posted September 30, 2014 sem o usuario ver Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.