
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.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.

Comentários
Página não encontrada
Comment:
Fui baixar o exemplo desta página e o link está quebrado, teria como corrigir esse problema?
Clodoaldo Monteiro
(86) 98859-0236
Páginas