Página 1 de 2

mailsend

Enviado: 22 Dez 2014 15:43
por Alexandre Silva
Ola
Uso mailsend, pois tem a opcao TTLS, que o o Blat nao tem..

Em apenas um cliente começou a dar o erro abaixo...todos os micros..
reiniciamos servidor etc e nada...
Alguma dica.. ??

outros clientes que tb usam mailsend... sem problemas...

22-dez-2014 13:43:12.328: mailsend v@(#) mailsend v1.17b14
Winsock error[10054]: Foi forçado o cancelamento de uma conexão existente pelo host remoto.

mailsend

Enviado: 22 Dez 2014 16:50
por Kapiaba
Olá,

Erro de soquete (# 10054)

O SSL do server está habilitado := .T. ?

Verifique.

abs.

mailsend

Enviado: 22 Dez 2014 17:03
por Jairo Maia
Olá Pessoal,
Kapiaba escreveu:O SSL do server está habilitado := .T. ?
Kapiaba,na minha opinião deve estar sim, pois conseguiu conexão. É um erro de Reset no servidor por alguma conexão que teve problema.
Alexandre Silva escreveu:Em apenas um cliente começou a dar o erro abaixo...todos os micros..
Alexandre, algumas dicas, talvez resolva, mas terá que ser feito desta forma:

1 - Verifique em cada máquina se há mais de 1 antivírus instalado. Se sim, deixe apenas 1.
2 - Baixe aqui do site oficial da Piriform o CCleaner (gosto de indicar o CCleaner): http://www.piriform.com/
3 - desconecte toda a rede (se for Wi-FI desligue o modem, se for cabo, desconecte os cabos).
4 - Rode o CCleaner em cada máquina (o computador será reiniciado)
5 - reconect a rede e veja se resolve.

Nota: Caso resolva, tem que observar o uso de pen-drives, pois se for o caso de MalWare, eles podem estar infectados e retornar o problema.

Tente e veja se resolve.

mailsend

Enviado: 22 Dez 2014 17:26
por Kapiaba
Olá Jairo, pode ser que você esteja certo.

Além do cCleaner, uso mais duas seguranças em meu computador e nos clientes:

Advanced SystemCare 8 Free

http://www.iobit.com/advancedsystemcareper.php

e,

IObit Malware Fighter 2 Free

http://www.iobit.com/malware-fighter.php

Obg. abs.

mailsend

Enviado: 23 Dez 2014 06:26
por Jairo Maia
Alexandre, mil desculpas...

Agora lendo a mensagem do Kapiaba é que vi que comi bola no passo 2. A idéia é remover MalWare, e o CCleaner não faz isso, apenas limpa o cache.

Onde escrevi:
2 - Baixe aqui do site oficial da Piriform o CCleaner (gosto de indicar o CCleaner): http://www.piriform.com/
Tem que ser:
2 - Baixe aqui do site oficial do ADWCleaner (gosto de indicar o ADWCleaner): http://adwcleaner.br.uptodown.com/
Ou use uma das opções do Kapiaba. O problema pode estar relacionado a MalWare, não a cache. Foi mal, é o cansaço...

mailsend

Enviado: 23 Dez 2014 12:00
por Alexandre Silva
vamos tentar isso..depois posto.. aqui..
Só para informacao o cliente está conseguindo mandar e-mail pelo site do provedor...
o problema acontece com com o mailsend.. ok

mailsend

Enviado: 23 Dez 2014 15:08
por Itamar M. Lins Jr.
Já quebrei cabeça com isso, abandonei o Mailsend (conselho do Viktor) e passei a usar a Curl uma lib usada por praticamente 90% dos desenvolvedores, PHP, Java, e outros.

Saudações,
Itamar M. Lins Jr.

mailsend

Enviado: 23 Dez 2014 15:32
por rochinha
Amiguinhos,

Itamar M. Lins Jr. - Tens um código exemplo de uso da CURL para disponibilizar?

mailsend

Enviado: 24 Dez 2014 11:57
por Itamar M. Lins Jr.
Ola!
Tens um código exemplo de uso da CURL para disponibilizar?
Tá na mão!

Código: Selecionar todos

******************************************************
Function Email(aArqui,cSubject,cBody,cEmail,cBodyFile)
******************************************************
*
*
LOCAL aCC, cEA, lRet := .T., cComCopia, lTLS := .F., lPopAuth, cPopServer, nPortPOP, lTrace := .T.
IF ! tip_SSL()
   hwg_msgstop( "Erro: Ative o suporte SSL" )
   RETURN
ENDIF

IF hb_AScan( curl_version_info()[ 8 ], "smtps",,, .T. ) == 0
   hwg_msgstop( "Error: Requires libcurl 7.20.0 or newer, built with SSL and smtp protocol support" )
   RETURN
ENDIF

If Empty(cEmail)
   hwg_Msgstop('Informe o email de quem vai receber! ')
   return .f.
Else
   cTo := cEmail
EndIf
If Empty(em->email)
   hwg_Msgstop('Cadastre o email da quem está enviando')
   return .f.
Else
   cFrom := alltrim(em->email)
EndIf
If Empty(em->senha)
   hwg_Msgstop('Cadastre a senha  no servidor de email')
   return .f.
Else
   cPassword := alltrim(em->senha)
EndIf
If Empty(em->smtp)
   hwg_Msgstop('Cadastre o servidor SMTP.')
   return .f.
Else
   cSMTP := alltrim(em->smtp)
EndIf
If Empty(em->porta)
   hwg_Msgstop('Cadastre a porta do servidor SMTP.')
   return .f.
Else
   nPorta := em->porta
EndIf

xCC := iif(em->xCC,cFrom,Nil)

If hb_IsArray(aArqui)
Else
   aArqui := {aArqui}
EndIf

// hwg_Msginfo(cSMTP+"-"+str(nPorta)+"-"+cFrom+"-"+cTo+"-"+iif(cComCopia==Nil,"",cComCopia)+"-"+cBody+"-"+cSubJect+"-"+cPassWord)
      
cEA := tip_MailAssemble( cFrom, ;
       { cTo }, ;
      {xCC}  /* aCC */, ;
      cBody , ;
      cSubject , ;
      aArqui /* attachment */, ;
      /* nPriority */, ;
      /* lRead */, ;
      /* cReplyTo */, ;
      /* cCharset */, ;
      "base64" /* cEncoding */, ;
      .F. /* lBodyHTML */, ;
      /* bSMIME */ )
      
//   hb_MemoWRIT("email.txt",cEA) guardar o email p/ verificar possíveis erros
 //  hwg_processmessage()
      
   curl_global_init()
   
   IF ! Empty( curl := curl_easy_init() )
      #if ! defined( __PLATFORM__UNIX )
         IF ! hb_FileExists( _CA_FN_ )
            //? "Downloading", _CA_FN_
            curl_easy_setopt( curl, HB_CURLOPT_DOWNLOAD )
            curl_easy_setopt( curl, HB_CURLOPT_URL, "http://curl.haxx.se/ca/cacert.pem" )
            curl_easy_setopt( curl, HB_CURLOPT_DL_FILE_SETUP, _CA_FN_ )
            curl_easy_perform( curl )
            curl_easy_reset( curl )
         ENDIF
         curl_easy_setopt( curl, HB_CURLOPT_CAINFO, _CA_FN_ )
      #endif
      curl_easy_setopt( curl, HB_CURLOPT_USE_SSL, HB_CURLUSESSL_ALL)
      curl_easy_setopt( curl, HB_CURLOPT_UPLOAD )
      
      IF "GMAIL" $ Upper(cSMTP)
         curl_easy_setopt( curl, HB_CURLOPT_URL, "smtps://smtp.gmail.com:465" )
      ELSEIF "YAHOO" $ Upper(cSMTP)
         curl_easy_setopt( curl, HB_CURLOPT_URL, "smtps://smtp.mail.yahoo.com:465" )
      ELSEIF "OUTLOOK" $ Upper(cSMTP)
         curl_easy_setopt( curl, HB_CURLOPT_URL, "smtp://smtp-mail.outlook.com:587" ) //25
      ELSEIF "UOL" $ Upper(cSMTP)
         curl_easy_setopt( curl, HB_CURLOPT_URL, "smtps://smtps.uol.com.br:465" ) //587
      ENDIF
      
      curl_easy_setopt( curl, HB_CURLOPT_USERNAME, cFrom )
      curl_easy_setopt( curl, HB_CURLOPT_PASSWORD, cPassword )
      curl_easy_setopt( curl, HB_CURLOPT_UL_BUFF_SETUP, cEA )
      curl_easy_setopt( curl, HB_CURLOPT_INFILESIZE_LARGE, hb_BLen( cEA ) )
      curl_easy_setopt( curl, HB_CURLOPT_MAIL_FROM, cFrom )
      IF em->xCC
         curl_easy_setopt( curl, HB_CURLOPT_MAIL_RCPT, { cTo , xCC } )
      ELSE
         curl_easy_setopt( curl, HB_CURLOPT_MAIL_RCPT, { cTo } )
      ENDIF
      curl_easy_setopt( curl, HB_CURLOPT_VERBOSE, .T. )
      hwg_processmessage()
      cInfo := str(curl_easy_perform( curl ))
      hb_MemoWrit("curl.txt",cInfo)
      curl_easy_cleanup( curl )
      
      IF Empty(Val(cInfo))
         hwg_msginfo("Email enviado")
      ELSE
         hwg_msginfo("Falha enviando email")
      ENDIF
      
   ELSE
      hwg_msginfo("Falha enviando email")
      lRet := .F.
   ENDIF 

RETURN lRet

Pode tirar umas checagens que ficaram redundantes.
O trabalho maior foi p/ descobrir que o Hotmail funciona diferente dos demais (pra variar), é SMTP não SMTPS mesmo com SSL e TLS ativado, vai entender !!!

Saudações,
Itamar M. Lins Jr.

mailsend

Enviado: 28 Dez 2014 23:29
por Itamar M. Lins Jr.
O Viktor também atualizou e corrigiu alguns problemas no fork dele.

Código: Selecionar todos

/* Copyright 2014 Viktor Szakats (vszakats.net/harbour) */

#require "hbcurl"
#require "hbtip"

#include "simpleio.ch"

#define _CA_FN_  "cacert.pem"

PROCEDURE Main( cFrom, cPassword, cTo, cProvider )

   LOCAL curl
   LOCAL cMessage

   LOCAL cHost
   LOCAL lSTARTTLS

   IF hb_AScan( curl_version_info()[ 8 ], "smtps",,, .T. ) == 0
      ? "Error: Requires libcurl 7.20.0 or newer, built with SSL and smtp protocol support"
      RETURN
   ENDIF

   hb_default( @cFrom    , "from@example.net" )
   hb_default( @cPassword, "password" )
   hb_default( @cTo      , "to@example.com" )
   hb_default( @cProvider, "" )

   cProvider := Lower( cProvider )

   lSTARTTLS := .F.

   /* NOTE: Consult your provider for updated settings
            and make a pull request if necessary. */

   DO CASE
   CASE cProvider == "apple" .OR. "@icloud.com" $ cFrom .OR. "@mac.com" $ cFrom .OR. "@me.com" $ cFrom
      cHost := "smtp://smtp.mail.me.com:587"; lSTARTTLS := .T.
   CASE cProvider == "fastmail" .OR. "@fastmail.com" $ cFrom .OR. "@fastmail.fm" $ cFrom
      cHost := "smtps://mail.messagingengine.com"
   CASE cProvider == "gmx.net" .OR. "@gmx.net" $ cFrom .OR. "@gmx.ch" $ cFrom .OR. "@gmx.de" $ cFrom
      cHost := "smtp://mail.gmx.net:587"; lSTARTTLS := .T.
   CASE cProvider == "google" .OR. "@gmail.com" $ cFrom .OR. "@googlemail.com" $ cFrom
      cHost := "smtps://smtp.gmail.com"
   CASE cProvider == "mail.ru" .OR. "@mail.ru" $ cFrom
      cHost := "smtps://smtp.mail.ru"
   CASE cProvider == "netease" .OR. "@163.com" $ cFrom
      cHost := "smtps://smtp.163.com"
   CASE cProvider == "office365"
      cHost := "smtp://smtp.office365.com:587"; lSTARTTLS := .T.
   CASE cProvider == "outlook" .OR. "@outlook.com" $ cFrom .OR. "@hotmail.com" $ cFrom
      cHost := "smtp://smtp-mail.outlook.com:587"; lSTARTTLS := .T.
   CASE cProvider == "sina" .OR. "@sina.com" $ cFrom
      cHost := "smtps://smtp.vip.sina.com"
   CASE cProvider == "uol" .OR. "@uol.com.br" $ cFrom
      cHost := "smtps://smtps.uol.com.br"
   CASE cProvider == "yahoo" .OR. "@yahoo.com" $ cFrom
      cHost := "smtps://smtp.mail.yahoo.com"
   OTHERWISE
      ? "Error: Unknown provider"
      RETURN
   ENDCASE

   cMessage := tip_MailAssemble( cFrom, ;
      { cTo }, ;
      /* aCC */, ;
      "test: body", ;
      "test: subject", ;
      /* attachment */, ;
      /* nPriority */, ;
      /* lRead */, ;
      /* cReplyTo */, ;
      /* cCharset */, ;
      /* cEncoding */, ;
      .F. /* lBodyHTML */, ;
      /* bSMIME */ )

   curl_global_init()

   IF ! Empty( curl := curl_easy_init() )
      #if ! defined( __PLATFORM__UNIX )
         IF ! hb_FileExists( _CA_FN_ )
            ? "Downloading", _CA_FN_
            curl_easy_setopt( curl, HB_CURLOPT_DOWNLOAD )
            curl_easy_setopt( curl, HB_CURLOPT_URL, "http://curl.haxx.se/ca/cacert.pem" )
            curl_easy_setopt( curl, HB_CURLOPT_DL_FILE_SETUP, _CA_FN_ )
            curl_easy_perform( curl )
            curl_easy_reset( curl )
         ENDIF
         curl_easy_setopt( curl, HB_CURLOPT_CAINFO, _CA_FN_ )
      #endif
      IF lSTARTTLS
         curl_easy_setopt( curl, HB_CURLOPT_USE_SSL, HB_CURLUSESSL_ALL )
      ENDIF
      curl_easy_setopt( curl, HB_CURLOPT_UPLOAD )
      curl_easy_setopt( curl, HB_CURLOPT_URL, cHost )
      curl_easy_setopt( curl, HB_CURLOPT_USERNAME, cFrom )
      curl_easy_setopt( curl, HB_CURLOPT_PASSWORD, cPassword )
      curl_easy_setopt( curl, HB_CURLOPT_UL_BUFF_SETUP, cMessage )
      curl_easy_setopt( curl, HB_CURLOPT_INFILESIZE_LARGE, hb_BLen( cMessage ) )
      curl_easy_setopt( curl, HB_CURLOPT_MAIL_FROM, cFrom )
      curl_easy_setopt( curl, HB_CURLOPT_MAIL_RCPT, { cTo } )
      curl_easy_setopt( curl, HB_CURLOPT_VERBOSE, .T. )

      ? "Result:", curl_easy_perform( curl )

      curl_easy_cleanup( curl )
   ELSE
      ? "Failed to init"
   ENDIF

   RETURN

Código: Selecionar todos

2014-12-29 02:13 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
  * contrib/hbcurl/hbcurl.ch
    + added new error codes

  * contrib/hbcurl/tests/email.prg
  * contrib/hbtip/tests/email.prg
    + added more SMTP provider examples
      (gmx.net, mail.ru, netease/163, office365, sina, UOL)

2014-12-28 23:26 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
  * contrib/hbcurl/tests/email.prg
    + recognize another sender domain

2014-12-28 23:23 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
  * contrib/hbmisc/spd.c
  * utils/hbmk2/hbmk2.prg
    * cleanups

2014-12-28 12:17 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
  * contrib/hbcurl/tests/email.prg
    + added support for apple and gmx mail
    ! fixed accessing servers that use STARTTLS
    % deleted default port 465

  * package/winuni/mpkg_win_uni.bat
    * whitespace

2014-12-27 21:18 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
  * tests/iotcp.prg
    ! fixed to run as hbrun script
    ! fixed test service's port

2014-12-27 15:35 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
  * contrib/hbcurl/tests/gmail.prg -> contrib/hbcurl/tests/email.prg
  * contrib/hbtip/tests/gmail.hbp -> contrib/hbtip/tests/email.hbp
  * contrib/hbtip/tests/gmail.prg -> contrib/hbtip/tests/email.prg
    * renamed to be provider agnostic
    + added alternate SMTP providers

2014-12-26 01:53 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
  * contrib/hbssl/tests/crypt.prg
    ! typos
    ! TOFIX added
    + changed cipher, added iv

  * contrib/hbssl/tests/encode.prg
    ! fixed terminology

  * contrib/hbssl/tests/test.prg
    ! fixed HTTP request
    * changed to use example.org

  * contrib/hbssl/evpciph.c
  * contrib/hbssl/hbssl.ch
    + AES/GCM ciphers added (couldn't make them work)

  * contrib/hbwin/win_os.prg
    * minor comment cleanup

  * contrib/xhb/thtm.prg
    * use example.org

  * contrib/xhb/xhbmemo.prg
    * whitespace

Usando o tipmail

Código: Selecionar todos

/* Copyright 2009 Viktor Szakats (vszakats.net/harbour) */

#require "hbssl"
#require "hbtip"

#if ! defined( __HBSCRIPT__HBSHELL )
REQUEST __HBEXTERN__HBSSL__
#endif

#include "simpleio.ch"

PROCEDURE Main( cFrom, cPassword, cTo, cProvider )

   LOCAL cHost
   LOCAL nPort := 465
   LOCAL lTLS := .T.

   IF ! tip_SSL()
      ? "Error: Requires SSL support"
      RETURN
   ENDIF

   hb_default( @cFrom    , "<from@example.net>" )
   hb_default( @cPassword, "password" )
   hb_default( @cTo      , "to@example.com" )
   hb_default( @cProvider, "" )

   cProvider := Lower( cProvider )

   DO CASE
   CASE cProvider == "fastmail" .OR. "@fastmail.com" $ cFrom .OR. "@fastmail.fm" $ cFrom
      cHost := "mail.messagingengine.com"
   CASE cProvider == "google" .OR. "@gmail.com" $ cFrom .OR. "@googlemail.com" $ cFrom
      cHost := "smtp.gmail.com"
   CASE cProvider == "mail.ru" .OR. "@mail.ru" $ cFrom
      cHost := "smtp.mail.ru"
   CASE cProvider == "netease" .OR. "@163.com" $ cFrom
      cHost := "smtp.163.com"
   CASE cProvider == "sina" .OR. "@sina.com" $ cFrom
      cHost := "smtp.vip.sina.com"
   CASE cProvider == "uol" .OR. "@uol.com.br" $ cFrom
      cHost := "smtps.uol.com.br"
   CASE cProvider == "yahoo" .OR. "@yahoo.com" $ cFrom
      cHost := "smtp.mail.yahoo.com"
   OTHERWISE
      ? "Error: Unknown provider"
      RETURN
   ENDCASE

   ? tip_MailSend( ;
      cHost, ;
      nPort, ;
      cFrom, ;
      cTo, ;
      NIL /* CC */, ;
      {} /* BCC */, ;
      "test: body", ;
      "test: subject", ;
      NIL /* attachment */, ;
      cFrom, ;
      cPassword, ;
      "", ;
      NIL /* nPriority */, ;
      NIL /* lRead */, ;
      .T. /* lTrace */, ;
      .F., ;
      NIL /* lNoAuth */, ;
      NIL /* nTimeOut */, ;
      NIL /* cReplyTo */, ;
      lTLS )

   RETURN
Saudações,
Itamar M. Lins Jr.

mailsend

Enviado: 05 Jan 2015 22:53
por Alexandre Silva
Entao pessoal ... voltando as atividades. feliz ano novo a todos..

Sempre que vejo esses fontes eu penso. como compila-los...??
Para vcs pode parecer basico..

eu uso harbour. Compilo via hbmk2 projeto.hbp, em modo console

pensei que bastava referenciar conforme abaixo
e/ou fazer os request no programa princial..

ou preciso baixar os fontes da lib e compila-la ?

-oTeste
-lxhb
-lhbwin
-lhbssl
-lhbtip
TESTE.PRG

Claro isso nao deu certo.. como compilar ?

mailsend

Enviado: 06 Jan 2015 21:12
por JoséQuintas
Voltando ao post inicial: acontece muitas vezes dessa mensagem se referir a problemas de autenticação.
Como exemplo, se o servidor pede uma conexão pop3 antes do envio, e essa conexão não for feita.

mailsend

Enviado: 06 Jan 2015 21:16
por Alexandre Silva
e qual a solucao ?

mailsend

Enviado: 06 Jan 2015 21:44
por JoséQuintas
Igual você faz em um programa de email.
Verifique as configurações do provedor de email, e configure o cliente de email de acordo com o provedor.
Se for o caso, teste num programa normal de email pra confirmar.

Não lembro se é nesse caso, mas tem uma situação onde o email só funciona dentro do domínio quando não está configurado direito.
Tipo @provedor.com.br só consegue enviar pra @provedor.com.br

E tem o caso de anexos proibidos, onde o provedor cancela a conexão.

mailsend

Enviado: 06 Jan 2015 22:04
por Alexandre Silva
Mas é que tudo vinha funcionando há mais de 2 anos... nada mudado no e-mail do cliente...mesmo provedor.. etc
e fora o sendmail, os e-mail da empresa estao funcionando..

Prefiro mudar para o Curl citado acima.. só nao sei complilar