Emails p/ xHarbour

Foto de Anderson

Projeto Harbour

 Harbour Project

Estava faltando descomplicar...


 

Para enviar emails pelo xHarbour é melhor utilizar a função SendMail que estamos anexando a esta matéria no rodapé para download.

Veja sua sintaxe:

 

FUNCTION HB_SendMail( cServer, nPort, cFrom, aTo, aCC, aBCC, cBody, cSubject, aFiles, cUser, cPass, cPopServer, nPriority, lRead, lTrace, lPopAuth, lnoauth, nTimeOut)
/*
cServer    -> Obrigatório. IP ou domínio do servidor de emails
nPort      -> Opcional. Porta usada pelo servidor de emails

cFrom      -> Obrigatório. Email do remetente
aTo        -> Obrigatório. String ou array de endereços de email para serem enviados
aCC        -> Opcional. String ou array de endereços de email para CC (Carbon Copy)
aBCC       -> Opcional. String ou array de endereços de email para BCC (Blind Carbon Copy)
cBody      -> Opcional. A mensagem do corpo do email como texto ou arquivo HTML

cSubject   -> Opcional. Assunto do email

aFiles     -> Opcional. Array de arquivos para serem enviados como anexo
cUser      -> Obrigatório. Nome de usuário do servidor POP3
cPass      -> Obrigatório. Senha do cUser
cPopServer -> Obrigatório. Nome ou endereço do servidor de emails POP3 [sic][Usa-se o SMTP para enviar email]
nPriority  -> Opcional. Prioridade do Email: 1=Alta, 3=Normal (Padrão), 5=Baixa
lRead      -> Opcional. Se for .T., uma requisição de confirmação será solicitada. Por padrão é .F.
lTrace     -> Opcional. Se for .T., um arquivo de log é criado (sendmail<nNr>.log). O padrão é .F.
lnoauth    -> Opcional. Desativa método de autenticação
nTimeOut   -> Opcional. Número de milisegundos para esperar. O padrão é 20000 (20s).
*/

 

Veja um exemplo de minha autoria para enviar emails pelo xHarbour com o SendMail:  
 

IF (ALERT("ENVIA ARQUIVOS POR EMAIL AGORA?", {"Sim", "Não"})) = 1
   @ 24,00 SAY PADC("Preparando email... AGUARDE!",80) COLOR "W+/BG"

   // ARQUIVOS A SEREM ENVIADOS
   aFILES := {cPASTA+cARQLC, cPASTA+cARQLI, cPASTA+cARQCON}

   // COMPACTA ARQUIVOS
   fZIP := cPASTA+"Portal.zip"
   IF FILE(fZIP)
      RUN ("DEL "+fZIP) // APAGA ZIP ANTERIOR
   ENDIF
   HB_ZIPFILE(fZIP, aFILES) // COMPACTA OS 3 ARQUIVOS EM PORTAL.ZIP

   // preparing data for eMail
   cSubject  := "Aqui vai o assunto do seu email"
   cFrom     := "email@remetente.com.br"    // email do remetente
   cMAILUSER := "usuariodoemail"            // login de acesso do seu email
   cPASSWORD := "senhadoemail"              // sua senha de email
   cSMTP     := "smtp.seudominio.com.br"    // seu domínio do email
   cTo       := "email@destinatario.com.br" // email do destinatário
   cCC       := cFrom                       // manda cópia carbono pra você mesmo ter certeza que deu certo
   aAttach   := {fZIP}                      // sempre array


   cBody := "Prezados,"+HB_OsNewLine()+HB_OsNewLine()+;
            HB_OemToAnsi("Estamos encaminhando as informações da STU-MAC/CBTU para o Portal da Transparência referente ao período de ";

            +DTOC(dINIPROC)+" a "+DTOC(dFIMPROC)+".")+HB_OsNewLine()+;
            "Atenciosamente,"+HB_OsNewLine()+HB_OsNewLine()+;
            "Fulano de Tal"+HB_OsNewLine()+;
            "Cargo/empresa"+HB_OsNewLine()+;
            "Fone: (99) 9999-9999"

   nEMAILSIZE := HB_FSIZE(fZIP) / 1024
   @ 24,00 SAY PADC("Enviando arquivo Portal.zip por email... ("+ALLTRIM(STR(nEMAILSIZE))+"Kb) AGUARDE!",80) COLOR "W+/BG"

   IF HB_SENDMAIL(cSMTP,, cFROM, cTO, cCC,, cBODY, cSUBJECT, aAttach, cMAILUSER, cPASSWORD, cSMTP, 1, .T., .T.)
      ALERT("ARQUIVOS ENVIADOS COM ÊXITO.")
   ELSE
      ALERT("Falha ao enviar o email.")
   ENDIF
ENDIF

Enviar emails pelo sistema pode ser útil quando você tem que mandar um email para vários destinatários, ninguém pode conhecer o email do outro (para evitar conluios) e você precisa do comprovante de envio (prova de pesquisa de mercado). Assim, não adianta mandar via BCC, pois não vai ter comprovante.

Anexo: 

Função SendMail — Never downloaded
Total votes: 0