Página 1 de 1

SENDMAIL não funciona com Gmail.

Enviado: 13 Jul 2017 10:22
por Poka
Olá a todos
não funciona com Gmail
alguém poderia dar uma ajuda.



Código: Selecionar todos

ANNOUNCE RDDSYS 
#INCLUDE "MINIGUI.CH" 
#INCLUDE "FILEIO.CH" 
*------------------------------------
FUNC SENDMAIL
			// RETORNA _ERRO
			// SE VAZIO, TUDO OK
			// SE NAO VAZIO DEU ERRO
			LOCAL X,A
   LOCAL OSOCKET, CSMTP, CFROM, CTO, CSUBJECT, CMSGBODY, AATTACHMENT
   LOCAL  CUSERID, CPASSWORD, LHTML, CUSER := ""  ,_ERRO:="" 
   
			PARA;            //  EXEMPLOS
			XCSMTP,;          // "ITELEFONICA.COM.BR"
   XCFROM,	;         // "<RCSISTEMA1@ITELEFONICA.COM.BR>"
   XCTO	 , ;         // "<RCPOCA@YAHOO.COM.BR>"
   XCSUBJECT,	;      // "TESTE DE ENVIO DE EMAIL"     // TITULO DO EMAL
   XAATTACHMENT, ;   // "C:\GELICHB\TESTE.XML"
   XCMSGBODY	, ;     // "SEGUE ARQUIVO XML"       // TEXTO DO CORPO DO EMAIL
   XCUSERID	 , ;     // "RCSISTEMA1@ITELEFONICA.COM.BR"
   XCPASSWORD ,;     // "HELENINHA"
   XNPORT     ,;     // 25
   XNPRIORITY      // 3      PRIORIDADE NORMAL
			IF LEN( ALLTRIM (XCTO) ) <=2
						_ERRO+="- Email não preenchido"
						RETU (_ERRO)
			ENDIF
   msg(1,"enviando email para " + fl+xcto)

   *-----------------------------------------------------------------------------*
   CSMTP	        :=  XCSMTP
   CFROM	        :=  ALLTRIM(XCFROM)
   CTO	          := ALLTRIM(XCTO) 
   CSUBJECT	     := XCSUBJECT
   AATTACHMENT   :=  XAATTACHMENT
   CMSGBODY	     := XCMSGBODY
   CUSERID	      := XCUSERID
   CPASSWORD     := XCPASSWORD
   NPORT         :=   XNPORT
   NPRIORITY     := XNPRIORITY
   
   IF  ! "@"  $ CTO
						_ERRO+="-Email inválido"+FL
      RETU (_ERRO)
   ENDIF
   FOR A:= 2 TO LEN( CTO) -1  // NAO CONSIDERA <>
      X:= ASC(SUBSTR(CTO,A,1))
      IF X = 46;
									.OR. X=64 ;
						   .OR. X>=48 .AND. X<=57 ;
						   .OR. X=95 ;
						   .OR. X>=97 .AND. X<=122
						   // VALIDO
						ELSE
   						_ERRO+="-Email inválido"+FL + CTO+FL+ "caracter: "+ SUBSTR(CTO,A,1)
         RETU (_ERRO)
						ENDIF
   NEXT
			//
   OSOCKET := TSMTP():NEW()
   OSOCKET:CLEARDATA()
   OSOCKET:SETPRIORITY( NPRIORITY )
   OSOCKET:SETFROM( CUSERID,CFROM)
   OSOCKET:ADDTO( CUSERID, CTO )
   OSOCKET:SETSUBJECT( CSUBJECT )
   OSOCKET:ADDATTACH( AATTACHMENT)
   OSOCKET:SETDATA( CMSGBODY, LHTML )
   OSOCKET:LOGIN( CUSERID, CPASSWORD )


   IF ! OSOCKET:SEND(.T.)
      //MSGSTOP( OSOCKET:GETLASTERROR(), "WHILE TRYING TO SEND DATA GOT AN ERROR MESSAGES FROM SERVER" )
      _ERRO+="- Email não enviado"
   ENDIF
   
   //OSOCKET:CLOSE()

RETU (_ERRO)
*----------------------------
FUNC CONECTA
			LOCAL _ERRO:=""
			PARA CSMTP,NPORT
   MSG(1,"Conectando servidor de email")
   OSOCKET := TSMTP():NEW()
   IF ! OSOCKET:CONNECT( CSMTP, NPORT )
      _ERRO:= "- Falha na conexão"
   ENDIF
   MSG(0)
RETU _ERRO
*-------------------
FUNC DESCONECTA
   OSOCKET := TSMTP():NEW()
   OSOCKET:CLOSE()
RETU NIL
*------------FIM ----------------------


Poka

TSMTP minigui não funciona com gmail

Enviado: 13 Jul 2017 10:58
por JoséQuintas
Tópico errado, isso não é do Harbour, e não é sendmail do Harbour.
Isso é a classe TSMTP da minigui.
À primeira vista, não tem opção pra gmail.

SENDMAIL não funciona com Gmail.

Enviado: 13 Jul 2017 15:07
por Kapiaba
Tente assim:

Código: Selecionar todos

function Main()

   LOCAL oMsg  := CreateObject( "CDO.Message" )
   LOCAL oConf := CreateObject( "CDO.Configuration" )
   LOCAL cSchema := "http://schemas.microsoft.com/cdo/configuration/"
   
   oConf:Fields[ cSchema + "sendusing" ] = 2
   oConf:Fields[ cSchema + "smtpserver" ] = "smtp.gmail.com"
   oConf:Fields[ cSchema + "smtpserverport" ] = 465
   oConf:Fields[ cSchema + "smtpauthenticate" ] = 1
   oConf:Fields[ cSchema + "sendusername" ] = "kapiabafwh@gmail.com"
   oConf:Fields[ cSchema + "sendpassword" ] = "suasenha" //"yourpassword"
   oConf:Fields[ cSchema + "smtpusessl" ] = 1
   oConf:Fields:Update()
   
   oMsg:To = "kapiabafwh@gmail.com"
   oMsg:From ="Joao <kapiabafwh@gmail.com>"
   oMsg:Subject = "Test send with gmail account"
   oMsg:HTMLBody = "it works"
   oMsg:Sender = "Joao"
   oMsg:Organization = "FiveTech"
   oMsg:ReplyTo = "kapiabafwh@gmail.com"
   oMsg:Configuration = oConf
   
   oMsg:Send()

   MsgInfo( "Feito" )
   
return nil
abs.

SENDMAIL não funciona com Gmail.

Enviado: 13 Jul 2017 15:10
por Kapiaba
gmail.png

SENDMAIL não funciona com Gmail.

Enviado: 13 Jul 2017 15:39
por Kapiaba
Opa, esqueci:
gmail2.png

SENDMAIL não funciona com Gmail.

Enviado: 13 Jul 2017 15:40
por Kapiaba
gmail3.png

SENDMAIL não funciona com Gmail.

Enviado: 13 Jul 2017 15:41
por Kapiaba

SENDMAIL não funciona com Gmail.

Enviado: 13 Jul 2017 15:42
por Kapiaba
Desligando a segurança do gmail:

https://myaccount.google.com/lesssecureapps?pli=1

Abs

SENDMAIL não funciona com Gmail.

Enviado: 21 Jul 2017 10:13
por Poka
Olá

Quintas, com certeza peguei essa rotina praticamente pronta, funciona à tempos, mas com gmail não. Se há uma coisa que não gosto em programação é quando mexe com essas partes que sai do trivial de programação, impressoras fiscais, enfim essas coisas. Como trabalho sozinho pra mim é um parto. Tenho um amigo, ele não é programador mas me ajuda nessas partes. Não ligo de ficar uma semana em meia dúzia de linhas em programação com custos , contas a pagar , a receber, isso eu gosto, mas essas outras coisas aí pra mim é um sofrimento.

Kapiaba, obrigado por responder, mas infelizmente não consegui fazer funcionar, dá o seguinte erro.

Error cdo_message/- 2147352573
Disp_e_membernotfound:send
Called from toleauto:send(0)

Tem solução?
Obrigado.

Poka

SENDMAIL não funciona com Gmail.

Enviado: 21 Jul 2017 10:28
por Daniel
Ola
voce usa minigui
tenta assim

Código: Selecionar todos

LOCAL oMsg  := win_oleCreateObject( "CDO.Message" )
LOCAL oConf := win_oleCreateObject( "CDO.Configuration" )

SENDMAIL não funciona com Gmail.

Enviado: 21 Jul 2017 10:37
por JoséQuintas
Eu uso uma solução simples pra isso:
Meu aplicativo tem email próprio, não preciso usar o email do cliente.
Se o do cliente não funciona, uso o do aplicativo e pronto.

SENDMAIL não funciona com Gmail.

Enviado: 21 Jul 2017 13:47
por rubens
Poka...

Eu uso exclusivamente o Gmail.
Envio NFE, Orcamento, Erros do Sistema e os XMLs do cliente quando vira o mes...

Dá uma olhada nessa rotina... mas ela tá prontinha.... com excessão do campos próprios do meu sistema..
Email_Pctoledo.prg
(17.01 KiB) Baixado 185 vezes
é só seguir a função envia_orcamento() que você vai conseguir enviar email com arquivo anexado, facinho, facinho...

Tem que fazer o procedimento no gmail do cliente que o kapiaba passou... desligar a segurança.
O Bom seria o que o Quintas faz... mas tem cliente que quer que o email dele envia... Eu sempre crio um gmail para o cliente, somente para o envio de nota...

Rubens

SENDMAIL não funciona com Gmail.

Enviado: 21 Jul 2017 14:11
por JoséQuintas
Esqueceu de mencionar:
SSL depende da lib disso, que não é gerada usando somente os fontes do Harbour, precisa componentes a mais a serem baixados.

Exemplo pra vários tipos de mail tem no Harbour, inclusive gmail:

https://github.com/vszakats/harbour-cor ... /email.prg

SENDMAIL não funciona com Gmail.

Enviado: 21 Jul 2017 14:14
por JoséQuintas
E achei interessante o esquema atual.
Tá na hora de atualizar minha classe de e-mails.... rs

SENDMAIL não funciona com Gmail.

Enviado: 27 Jul 2017 08:22
por Poka
Olá

Agradeço ao Quintas, , Kapiaba , Daniel e Rubens por responder.
Acabei pegando a rotina do Rubens, tirei algumas partes para se adequar ao meu sistema e funcionou perfeitamente. Obrigado Rubens por compartilhar.

Poka