Jump to content
Fivewin Brasil

Theotokos

Membros
  • Posts

    1,796
  • Joined

  • Last visited

  • Days Won

    31

Everything posted by Theotokos

  1. UP!! Nada até agora, nenhuma funcionou para enviar o email...
  2. a rotina é essa: oEmail := hbNFeEmail() * oEmail:aFiles := { AllTrim(cFile) } oEmail:aTo := { AllTrim(cTo) } oEmail:cSubject := cSubject oEmail:cMsgTexto := cBody oEmail:cMsgHTML := nil oEmail:cServerIP := AllTrim(cServer) oEmail:cFrom := AllTrim(cFrom) oEmail:cUser := AllTrim(cUsuaID) oEmail:cPass := AllTrim(cPassword) oEmail:nPortSMTP := nPort oEmail:lConf := .F. oEmail:lSSL := .T. oEmail:lAut := .T. * aRetorno := oEmail:execute() oEmail := Nil * IF aRetorno['OK'] == .F. ? aRetorno['MsgErro'] ELSE ? 'Enviou' ENDIF e classe é: * Funcoes e Classes Relativas a NFE (Envio de Email) * * Usado como Base o Projeto Open ACBR e Sites sobre XML, Certificados e Afins * * Qualquer modificação deve ser reportada para Fernando Athayde para manter a sincronia do projeto * * Fernando Athayde 28/08/2011 fernando_athayde@yahoo.com.br * **************************************************************************************************** #include "common.ch" #include "hbclass.ch" #ifndef __XHARBOUR__ #include "hbwin.ch" #include "harupdf.ch" #include "hbzebra.ch" #include "hbcompat.ch" #endif #include "hbnfe.ch" CLASS hbNFeEmail DATA ohbNFe DATA cSubject DATA cMsgTexto DATA cMsgHTML DATA cServerIP DATA cFrom DATA cUser DATA cPass DATA nPortSMTP DATA lConf DATA lSSL DATA lAut DATA aFiles DATA aTo DATA aCC DATA aBCC METHOD execute() ENDCLASS METHOD execute() CLASS hbNFeEmail LOCAL aRetorno := hash(), oCfg, oMsg, oError, nITo, nIFiles, cArgs, cFileName, xa, cArg, retorno IF VALTYPE( ::aTo ) == "C" ::aTo := { ::aTo } ENDIF IF ::cSubject == Nil ::cSubject := ::ohbNFe:cEMail_Subject ENDIF IF ::cMsgTexto == Nil ::cMsgTexto := ::ohbNFe:cEMail_MsgTexto ENDIF /*IF ::cMsgHTML == Nil ::cMsgHTML := ::ohbNFe:cEMail_MsgHTML ENDIF*/ IF ::cServerIP == Nil ::cServerIP := ::ohbNFe:cEMail_ServerIP ENDIF IF ::cFrom == Nil ::cFrom := ::ohbNFe:cEMail_From ENDIF IF ::cUser == Nil ::cUser := ::ohbNFe:cEMail_User ENDIF IF ::cPass == Nil ::cPass := ::ohbNFe:cEMail_Pass ENDIF IF ::nPortSMTP == Nil ::nPortSMTP := ::ohbNFe:nEMail_PortSMTP ENDIF IF ::lConf == Nil ::lConf := ::ohbNFe:lEMail_Conf ENDIF IF ::lConf = Nil ::lConf = .F. ENDIF IF ::lSSL == Nil ::lSSL := ::ohbNFe:lEMail_SSL ENDIF IF ::lSSL = Nil ::lSSL = .F. ENDIF IF ::lAut == Nil ::lAut := ::ohbNFe:lEMail_Aut ENDIF // preparar TRY oCfg := CreateObject( "CDO.Configuration" ) WITH OBJECT oCfg:Fields :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value := ::cServerIP :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value := ::nPortSMTP :Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" ):Value := 2 :Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"):Value := ::lAut :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value := ::lSSL :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/smtpconnectiontimeout" ):Value := 30 :Update() END WITH CATCH oError aRetorno[ "OK" ] = .F. aRetorno[ "MsgErro" ] := "Falha conexão com o smtp"+HB_OsNewLine()+ ; "Error: " + Transform(oError:GenCode, nil) + ";" +HB_OsNewLine()+ ; "SubC: " + Transform(oError:SubCode, nil) + ";" +HB_OsNewLine()+ ; "OSCode: " + Transform(oError:OsCode, nil) + ";" +HB_OsNewLine()+ ; "SubSystem: " + Transform(oError:SubSystem, nil) + ";" +HB_OsNewLine()+ ; "Mensangem: " + oError:Description RETURN( aRetorno ) END // enviar FOR nITo:=1 TO LEN( ::aTo ) oMsg := CreateObject ( "CDO.Message" ) WITH OBJECT oMsg :Configuration := oCfg :From := ::cFrom :To := ::aTo[ nITo ] IF ::aCC <> Nil :Cc := ::aCC ELSE :Cc := "" ENDIF IF ::aBCC <> Nil :BCC := ::aBCC ELSE :BCC := "" ENDIF :Subject := ::cSubject IF !EMPTY( ::cMsgTexto ) :TextBody = ::cMsgTexto ELSE :HTMLBody = ::cMsgHTML ENDIF FOR nIFiles := 1 TO LEN( ::aFiles ) IF FILE( ALLTRIM(::aFiles[ nIFiles ]) ) :AddAttachment(ALLTRIM(::aFiles[ nIFiles ])) ELSE aRetorno[ "OK" ] := .F. aRetorno[ "MsgErro" ] := 'Arquivo não encontrado: '+::aFiles[ nIFiles ] RETURN(aRetorno) ENDIF NEXT IF ::lConf=.T. :Fields( "urn:schemas:mailheader:disposition-notification-to" ):Value := ::cFrom :Fields:update() ENDIF END WITH TRY retorno := oMsg:Send() CATCH oError cFilename := "" IF oError:Filename<>NIL IF VALTYPE(oError:Filename) = "C" cFilename := oError:Filename ELSEIF VALTYPE(oError:Filename) = "N" cFilename := TRANSFORM(oError:Filename,Nil) ELSE cFilename := VALTYPE(oError:Filename) ENDIF ENDIF cArgs := "" IF oError:Args<>NIL IF VALTYPE(oError:Args) = "C" cArgs := oError:Args ELSEIF VALTYPE(oError:Args) = "N" cArgs := TRANSFORM(oError:Args,Nil) ELSEIF VALTYPE(oError:Args) = "A" FOR xA = 1 TO LEN(oError:Args) cArg := "" IF VALTYPE(oError:Args[xA])="C" cArg := oError:Args[xA] ELSEIF VALTYPE(oError:Args[xA])="N" cArg := TRANSFORM(oError:Args[xA],Nil) ELSE cArg := "desc."+VALTYPE(oError:Args[xA]) ENDIF cArgs += cArg+"," NEXT ELSE cArgs := VALTYPE(oError:Args) ENDIF ENDIF aRetorno[ "MsgErro" ] := "FALHA ENVIO DE EMAIL "+HB_OsNewLine()+ ; "Error: " + Transform(oError:GenCode, nil) + ";" +HB_OsNewLine()+ ; "SubC: " + Transform(oError:SubCode, nil) + ";" +HB_OsNewLine()+ ; "OSCode: " + Transform(oError:OsCode, nil) + ";" +HB_OsNewLine()+ ; "SubSystem: " + IF(oError:SubSystem=NIL,"",oError:SubSystem) + ";" +HB_OsNewLine()+ ; "Operation: " + IF(oError:Operation=NIL,"",IF(ISCHARACTER(oError:Operation),oError:Operation,STR(oError:Operation))) + ";" +HB_OsNewLine()+ ; "Filename: " + cFilename + ";" +HB_OsNewLine()+ ; "Args: " + cArgs + ";" +HB_OsNewLine()+ ; "Mensangem: " + IF(oError:Description=NIL,"",oError:Description) + ";" #ifndef __XHARBOUR__ aRetorno[ "MsgErro" ] += "WinOle: "+ win_oleErrorText() #endif aRetorno[ "OK" ] = .F. RETURN( aRetorno ) END NEXT aRetorno[ "OK" ] = .T. RETURN( aRetorno )
  3. Usando uma rotina com CDO, consegui que aparecesse o erro... só que dá esse erro com qualquer e-mail que eu tente.... tentei gmail, hotmail, bol,... tentei as portas 25, 465, 587 em todos eles... sempre a mesma msg Fala ENVIo de EMAIL Error: 1001; SubC : 3; OSCode : 0; SubSystem: CDO.Message; Operation: SEND; Filename:; Args:; Mensagem: DISP_E_MEMBERNOTFOUND;
  4. @kapiaba não consegui, fiz a alteração nas configurações do gmail.com e ainda assim não vai... tentei tmb com hotmail... e bol... nada até agora...
  5. oi... tentei executar esta rotina que vc passou, alias vlw muito obgdo por compartilhar.... mas esta dando como unresolved: hb_Base64encode hb_processOpen Esta funções são do xHarbour mesmo ou do Harbour? se é do harbour tem algum similar no xharbour?
  6. Valeu muito obrigado!!! Baixei já,,, vou verificar e iniciar alguns teste, qlq coisa comunico.. muito obgdo... FELIZ PASCOA!!!!
  7. @Jorge Andrade gostaria de receber tambem esta ACBrLib para tentar usá-la... se vc puder me enviar agradeço muito.... e-mail: ronecoura@gmail.com
  8. Mesmo com o RMail não estou conseguindo enviar, tentei pelo gmail, hotmail, bol.... nenhum deles foi... só informa que email não foi enviado... a mensagem em : Function Envia_Mail(oCfg, cFrom, cTo, cCC, cBCC, cMsg, cSubject) local cToken local lRet := .f. cTo := Destinatarios( cTo ) //--> PARA cCC := Destinatarios( cCC ) //--> COM COPIA cBCC := Destinatarios( cBCC ) //--> COM COPIA OCULTA TRY oMsg := CREATEOBJECT ( "CDO.Message" ) WITH OBJECT oMsg :Configuration = oCfg :From = AllTrim(cFrom) :To = AllTrim(cTo) :CC = AllTrim(cCC) :BCC = AllTrim(cBCC) :Subject = cSubject :TextBody = cMsg FOR x := 1 To Len( aAttach ) // Anexos dos Email aqui - LOCAL SYSREFRESH() IF aAttach[x] <> NIL :AddAttachment(ALLTRIM(aAttach[x])) ENDIF NEXT :Send() END WITH lRet := .t. CATCH MsgInfo("Não Foi Possível enviar a mensagem","AQUI_Erro") lRet := .f. END Return lRet
  9. @kapiaba no meu RMAIL.PRG tambem não consegui enviar!!! Estranho!!! Será que o RMAIL.PRG que tenho esta desatualizado:? se puder me enviar o RMAIL.PRG funcional que vc utiliza já agradeço.... enviar no e-mail: ronecoura@gmail.com Em Cristo muito obgdo!!!
  10. Bom Dia pessoal!!! Estou usando a rotina abaixo para enviar e-mail do fechamento do caixa, apesar de aparecer mensagem de enviando com sucesso não recebo... usando conta gmail para enviar e receber Alguem sabe o que esta de errado ? ou tem alguma outra rotina para enviar e-mail que esteja funcionando? cUsuaID := StrTran( cUsuaID, "@", "&at;" ) cUrl := cProto + cUsuaID + ":" + cPassword + "@" + cServer nPort := EMAIL->PORTA_S // 465 * cFrom := AllTrim(EMAIL->FROM_E) // "rone@rl-informatica.net" cTo := AllTrim(EMAIL->TO_E) // "errosys@rl-informatica.net" cCC := "" cSubject := "Caixa Enviado - "+AllTrim(EMAIL->LOJA_E) cFile := cArqTela cBody := "Enviando Caixa [" + cArqTela + "] " + CRLF + GerarCxArq() * EMAIL->(DbCloseArea()) If Empty(cServer) Return nil EndIf * oUrl := TUrl():New(cUrl , lCreateLogFile := .f.) oUrl:nPort := nPort oUrl:cUserid := cUsuaID * oSmtp := TIpClientSmtp():new( oUrl , lCreateLogFile ) * oEMail := TIpMail():new() oEMail:setHeader( cSubject, cFrom, cTo, cCC ) oEMail:setBody( cBody ) oEMail:attachFile( ALLTRIM(cFile) ) //oEMail:hHeaders[ "Disposition-Notification-To" ] := cFrom // solicita confirmacao oSmtp:nConnTimeout := 2000 IF oSmtp:open() oSmtp:sendMail( oEMail ) oSmtp:close() MsgWait( [Email enviado com sucesso], [RL Informatica], 2) ELSE MSGWait( oSmtp:lastErrorMessage(), "ERRO", 2 ) ENDIF
  11. Bom Dia pessoal!!! Estou usando a rotina abaixo para enviar e-mail do fechamento do caixa, apesar de aparecer mensagem de enviando com sucesso não recebo... usando conta gmail para enviar e receber <code> cUsuaID := StrTran( cUsuaID, "@", "&at;" ) cUrl := cProto + cUsuaID + ":" + cPassword + "@" + cServer nPort := EMAIL->PORTA_S // 465 * cFrom := AllTrim(EMAIL->FROM_E) // "rone@rl-informatica.net" cTo := AllTrim(EMAIL->TO_E) // "errosys@rl-informatica.net" cCC := "" cSubject := "Caixa Enviado - "+AllTrim(EMAIL->LOJA_E) cFile := cArqTela cBody := "Enviando Caixa [" + cArqTela + "] " + CRLF + GerarCxArq() * EMAIL->(DbCloseArea()) If Empty(cServer) Return nil EndIf * oUrl := TUrl():New(cUrl , lCreateLogFile := .f.) oUrl:nPort := nPort oUrl:cUserid := cUsuaID * oSmtp := TIpClientSmtp():new( oUrl , lCreateLogFile ) * oEMail := TIpMail():new() oEMail:setHeader( cSubject, cFrom, cTo, cCC ) oEMail:setBody( cBody ) oEMail:attachFile( ALLTRIM(cFile) ) //oEMail:hHeaders[ "Disposition-Notification-To" ] := cFrom // solicita confirmacao oSmtp:nConnTimeout := 2000 IF oSmtp:open() oSmtp:sendMail( oEMail ) oSmtp:close() MsgWait( , [RL Informatica], 2) ELSE MSGWait( oSmtp:lastErrorMessage(), "ERRO", 2 ) ENDIF </code>
  12. bom dia!!! Esse net use * \\IPDAVPN\NOMEDOCOMPARTILHAMENTO vc dentro do sistema? não entendi....
  13. Boa noite!!! @marcioe podia me mostrar como faz para colocar a imagem para cada item, no grupo? tentei com oBrw:AddResource() e oBrw:AddBmpFile() mas não consigeui.....
  14. oi, bom dia!!! como faço para que apareça no xBrowse desta forma? ou seja, as familias (picole, pizza, ect) e os produtos desta forma, um do lado do outro e não um embaixo dou outro (como registros)....
  15. bom Dia!!! Vc poderia compartilhar a rotina do xBrowse? gostaria de saber como vc esta construindo o xbrowse com essas multiplas linhas e imagem....
  16. Add um Custom Control, ai nas propriedades abaixo vc coloca: class name : TxBrowse windows Style : 0x50B10000
  17. Vlw!!! Entendi!!!! Pode me ajudar mais um pouquinho... kkkk Qual função utilizo para pegar o Serial? Vi alguns aqui no forum, mas cada um retorno um numero diferente... qual vc utiliza?
  18. NESTE CASO VC ENTÃO LIMITA O OPERADOR A CADA COMPUTADOR? ENTÃO POR EXEMPLO SE O OPERADOR FOR USAR OUTRO MICRO NÃO CONSEGUE...
  19. Boa tarde Pessoal!!!! Estou precisando criar no sistema a opção de vários caixas... é o seguinte: até o momento sempre utilizei pra registrar a movimentação do caixa 1 (um) único arquivo com os totalizadores do caixa (Crediário, Vista, Cheques, Cartões, etc)... porem, agora o cliente quer agora que o sistema registre a movimentação por Caixa (micro) e faça o fechamento diário de cada um... Tipo assim: Micro Caixa 1 : registra a sua movimentação, e fecha o seu caixa Micro Caixa 2 : registra a sua movimentação, e fecha o seu caixa GOSTARIA DE TER SUGESTÕES DOS AMIGOS, DE COMO CRIAR ISSO, UTILIZO ARQUIVOS DBF´S; COMO VARIA PARA REGISTRAR CADA MICRO (CAIXA), COMO SABER E QUAL ESTA PARA O SISTEMA POSSA GRAVAR???
  20. Concordo tmb....realmente é complicado essas coisas...
  21. Vlw @mkyx vou testar a sua rotina.... obgdao!!!
  22. Bom dia a Todos! Estou com um cliente que esta com uma catraca antiga, e é ão antiga que só funciona utilizando o win98, pois utilizamos para comunicar o sistema que veio com ela (Concent.exe e RBCom.exe) ENTÃO GOSTARIA DE DESENVOLVER A ROTINA PARA COMUNICAR COM ELA E ENTÃO PODER UTILIZAR WIN7 A COMUNICAÇÃO É FEITA POR PORTA COM1, ALGUEM JÁ FEZ ALGO ASSIM, QUE POSSA ME AJUDAR COM A ROTINA DE COMUNICAR COM ESTA PORTA E DE COMO FAZER A CATRACA BLOQUEAR OU LIBERAR O ACESSO? TENTEI ESTAS INFORMAÇÕES COM A FABRICANTE... MAS NÃO CONSIGUI.
  23. Os Drivers da webcam estão atualizado?
×
×
  • Create New...