Email pelo Xharbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Email pelo Xharbour

Mensagem por sygecom »

Veja que minha função está dentro de um TRY, é que as vezes se não configurar corretamente pode cair no erro mesmo, mas é só configurar certinho, usuario, senha, endereço smtp, se tem SSL e etc.. que vai certinho.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
esbasso
Colaborador
Colaborador
Mensagens: 325
Registrado em: 24 Jan 2007 17:49
Localização: CHAPECO/SC

Re: Email pelo Xharbour

Mensagem por esbasso »

MESMO ERRO usando sua função, tirei o TRY para poder colar o erro aqui

rror CDO.Message/3 DISP_E_MEMBERNOTFOUND: SEND - oError:genCode = 1001
Called from C:\xHarbour121\source\rtl\win32ole.prg->TOLEAUTO:SEND(0)
Called from C:\xHarbour\rotinas\hcdoemail.000->CDO_ENVIA_MAIL(258)
Called from C:\xHarbour\rotinas\hcdoemail.000->CONFIG_MAIL(225)
Called from C:\xHarbour\Estoque6\ESTOQUE.000->MAIN(268)

HwGUI 2.17 xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6733)


este erro não é questão de configurar
mas da falta de propriedade ou metodo do objeto OLE
a não ser que esta retornando uma mensagem errada sobre o erro
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Email pelo Xharbour

Mensagem por sygecom »

É no mínimo estranho mesmo. Testei aqui com Windows 7 e com Windows XP e deu certo...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Email pelo Xharbour

Mensagem por alaminojunior »

Eu já notei erros como este, quando acontecía de não encontrar os arquivos para anexar. Não sei se é o caso.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
esbasso
Colaborador
Colaborador
Mensagens: 325
Registrado em: 24 Jan 2007 17:49
Localização: CHAPECO/SC

Re: Email pelo Xharbour

Mensagem por esbasso »

sim
resolvido
na realidade a mensagem não significa exatamente o que se supõe

MSDN:

Invoke returns DISP_E_MEMBERNOTFOUND if one of the following conditions occurs:
A member or parameter with the specified DISPID and matching cArgs cannot be found, and the parameter is not optional.
The member is a void function, and the caller did not set pVarResult to Null.
The member is a read-only property, and the caller set wFlags to DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF.

então o que ocasionava o erro era um erro de configuração
no caso foi esta linha
:Item( "http://schemas.microsoft.com/cdo/config ... smtpusessl" ):Value := .F. //wSSL_EMAIL

SÓ FUNCIONA no meu caso se for FALSO
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Email pelo Xharbour

Mensagem por alaminojunior »

Mas e se o servidor exigir que seja SSL ?
Não sei, não me lembro se faz alguma diferença (faz algum tempo que codifiquei esta função no sistema) mas eu linkey junto a tipssl.lib.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Wesllen
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 19 Nov 2008 16:02
Localização: Varginha

Re: Email pelo Xharbour

Mensagem por Wesllen »

Bom dia,

Aproveitando o Topic.... alguém conhece uma forma de anexar arquivo html para enviar junto com arquivos XML?
Estou tentando fazer isso mas sempre que anexo o html dá erro e a mensagem não é enviada. Se eu retiro o html a mensagem segue normalmente.
Preciso fazer isso que que as NFe já sejam enviadas com os respectivos boletos.

Obs. uso o HB_SENDMAIL.

Agradeço pela ajuda.

[]'s
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Email pelo Xharbour

Mensagem por rochinha »

Amiguinhos,

Para o envio via CDO estou usando somente este trecho na configuração:

Código: Selecionar todos

  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
Lembrando que CDO só vai funcionar se tiver conectado a internet pois ele ira se configurar usando o site da Micro$oft.

Para o envio de conteúdo em texto plano ou HTML eu faço assim:

Código: Selecionar todos

...
  objCDOSYSMail:Configuration := objCDOSYSCon
  objCDOSYSMail:From          := mail_from
  objCDOSYSMail:To            := mail_to
  objCDOSYSMail:Subject       := mail_subject
  if lHtml // critica se quero HTML ou Texto plano
     objCDOSYSMail:HTMLBody   := mail_message // + CRLF + CRLF + MemoRead( mail_attach )
  else
     objCDOSYSMail:TextBody   := mail_message // + CRLF + CRLF + MemoRead( mail_attach )
  endif
No BLAT eu faço assim:

Código: Selecionar todos

     BlatCMD := [ blat.txt] + ;
                [ -to ]       + alltrim(cto) + ;
                [ -server ]   + alltrim(cserver) + ;
                ...
                iif( lHtml, [ -html ], [] )
Para o BLAT.TXT faço assim:

Código: Selecionar todos

...
    if lHtml
        cBody := FormHtml( cSubject, cBody )
     endif
     memowrit( "blat.txt", cbody )
... 

Código: Selecionar todos

Function FormHtml( cSubject, cBody )
   Local cOpen  := '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">' + CRLF 
   Local cClose := CRLF + 'Nossa empresa envia email somente para pessoas e empresas cadastradas em nosso sistema.' + CRLF + ;
                          'Caso tenha duvidas favor entrar em contato com nossa central de atendimento ao cliente.'
   cHTML := ;
      '<html>'  + CRLF + ;
      '<head>'  + CRLF + ;
      '   <meta http-equiv="Content-Type"' + CRLF + ;
      '         content="text/html; charset=iso-8859-1">' + CRLF + ;
      '</head>' + CRLF + ;
      '<body>'  + CRLF + ;
      '<pre>'   + CRLF + ;
       cBody    + CRLF + ;
      '</pre>'  + CRLF + ;
      '</body>' + CRLF + ;
      '</html>'
   Return cOpen + cHTML + cClose
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Shark
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 25 Set 2017 21:42
Localização: Brasília - DF

Email pelo Xharbour

Mensagem por Shark »

Este tópico é bem antigo mas o meiu problema é idêntico e bem recente. Alguém conseguiu afinal desvendar o mistério do objeto "SEND" não existir no CDO.Message?

Imagino que como está sendo utilizado um recurso externo através de OLE, pode ser um problema relacionado a versões de sistema operacional nao?

Atualmente qual método usado para enviar email usando xHarbour?
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Email pelo Xharbour

Mensagem por alaminojunior »

Alguém conseguiu afinal desvendar o mistério do objeto "SEND" não existir no CDO.Message?

Código: Selecionar todos

       TRY
         oMsg:= CREATEOBJECT ( "CDO.Message" )
           WITH OBJECT oMsg
                oMsg:MDNRequested = .T.
                oMsg:Configuration = oCfg
                oMsg:From = cFrom
                oMsg:To = aTo[i]
                oMsg:CC = aCC
                oMsg:BCC = aBCC
                oMsg:Subject = cSubject
                oMsg:Sender = cdpar000->fantasia
                oMsg:ReplyTo = cFrom
                oMsg:Organization = cdpar000->razao
                if !uso
                   cMsg = strtran( cMsg, chr(13)+chr(10) , '<br>' )
                   oMsg:HTMLBody = "<h3>"+cMsg+"</h3>"
                else
					    oMsg:TextBody = cMsg
				    endif		    
                For x := 1 To Len( aFiles )
                    oMsg:AddAttachment(AllTrim(aFiles[x]))
                Next
                IF vEMAIL_CONF
                   oMsg:Fields("urn:schemas:mailheader:disposition-notification-to"):Value:= cFrom
                   oMsg:Fields("urn:schemas:mailheader:return-receipt-to"):Value:= cFrom
                ENDIF
                oMsg:Fields:update()
                oMsg:Send()
           END WITH
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Email pelo Xharbour

Mensagem por rochinha »

Amiguinhos,

shark
O CDO é bem antigo e vinha automaticamente implantado nos Windows antes da versão 7. Após isto a CDOSYS.DLL até vem, mas depende de instalação, manual ou automatica pelo Programas e Recursos no que se refere a Rede e Exchange.

Procure por *cdo* na pasta System32 ou SYSWOW64 e registre na unha. Lembrando de estar no prompt com direitos Administrador.

Direitos de Administrador não é o mesmo que usar o usuário Administrador. Algumas instalações do Windows escondem o verdadeiro administrador. Para encontrá-lo:

net user administrador /active:yes
ou
net user administrator /active:yes
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Shark
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 25 Set 2017 21:42
Localização: Brasília - DF

Email pelo Xharbour

Mensagem por Shark »

Rochinha Amiguinho...

Seguindo o conceito de sua orientação: devo deduzir que para utilizar o método de envio de email usando "CDO" terei que intervir em cada máquina/windows de meus clientes? Pelo que entendi é mais ou menos isso que sugere. Confirma?
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Email pelo Xharbour

Mensagem por rochinha »

Amiguinhos,

shark
Com certeza, pois se o cdosys.dll, mesmo existindo não estiver registrado o recurso não funcionará. Lembrando que a Microsoft desligou alguns recursos que ficam presentes na instalação mas inativos sendo ativados após configurações nos recursos da máquina.

Digite cdosys.dll windows 7 download no Google e veja os cinco primeiros resultados. Te levam para baixar a .DLL correspondente ao S.O outros podem te levar a baixar "Fixers" que na verdade mentem que falta uma ou outra coisa e fazer voce baixar um programa que não faz nada e te dá prejuízo.

https://www.dll4free.com

http://www.dlldownloader.com[/url [i][url=https://pt.dll-files.com/cdos ... -files.com[/i]

http://originaldll.com

Após baixar passe o Antivirus nos arquivos e copie para a pasta System32 e registre-os. Entre no seu aplicativo e veja se funciona.

Eu também baixei mas não tenho prvisão de quando farei o teste.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Shark
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 25 Set 2017 21:42
Localização: Brasília - DF

Email pelo Xharbour

Mensagem por Shark »

Amigão... (Rochinha)

Visto que esta intervenção profunda no windows dos usuários de nossos softwares não é tecnologicamente digna (apesar de possível), qual seria a melhor solução, afinal, para tratar email´s por nós programadores do moribundo, mas, persistente clipper word? Confesso que estou profundamente indignado com essa limitação considerando tratamento de emails uma técnica extremamente retrograda. Diga lá irmão... Como saltar essa barreira?
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Email pelo Xharbour

Mensagem por alaminojunior »

Sem querer duvidar do nosso amiguinho Rochinha, não tenho tido reclamação sobre isso por parte dos clientes.
E temos sistema instalados em várias versões de Windows: XP, Seven, 8, 10 ...
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Responder