Email pelo Harbour
Enviado: 28 Mar 2014 14:19
Amiguinho,
Voce configurou os parametros de portas do servidor alheio?
Veja um trecho do meu codigo:
Voce configurou os parametros de portas do servidor alheio?
Veja um trecho do meu codigo:
Código: Selecionar todos
function SendCDOMail( mail_message,;
smtp_server ,;
mail_to ,;
mail_from ,;
mail_subject,;
smtp_user ,;
smtp_pass ,;
mail_attach , lHtml, portSMTP )
default lHtml := .f.
Private aProvedor := { { "UOL (Universo On-Line)" ,'pop.uol.com.br' ,'smtp.uol.com.br' ,.t., 25,110,.f.},;
{ "Terra" ,'pop.terra.com.br' ,'smtp.terra.com.br' ,.t., 25,110,.f.},;
{ "IG (Internet Generation)",'pop.ig.com.br' ,'smtp.ig.com.br' ,.t.,465,995,.t.},;
{ "iBest" ,'pop.ibest.com.br' ,'smtp.ibest.com.br' ,.t.,465,995,.t.},;
{ "iTelefonica" ,'pop.itelefonica.com.br','smtp.itelefonica.com.br',.t., 25,110,.f.},;
{ "Gmail (Google Mail)" ,'pop.gmail.com.br' ,'smtp.gmail.com.br' ,.t.,465,995,.t.},;
{ "Yahoo" ,'pop.mail.yahoo.com.br' ,'smtp.mail.yahoo.com.br' ,.t., 25,110,.f.},;
{ "Hotmail" ,'pop3.live.com' ,'smtp.live.com' ,.t., 25,995,.t.},;
{ "BOL (Brasil On-Line)" ,'pop3.bol.com.br' ,'smtp.bol.com.br' ,.t., 25,110,.f.},;
{ "ITM Networks" ,'mail.5volution.com.br' ,'mail.5volution.com.br' ,.t., 25,110,.f.} }
if lHtml
mail_message := FormHtml( mail_subject, mail_message )
endif
// Escolho o provedor padrao
cProvedor := alltrim(substr(mail_from,at("@",mail_from)+1,50))
cProvedor := iif(cProvedor="hotmail.com","live.com",cProvedor)
nPosicao := 10 // "ITM Networks" como meu padrao
for i = 1 to len(aProvedor)
if cProvedor $ aProvedor[i][2]
//? aProvedor[i][1],aProvedor[i][2],i
nPosicao := i
endif
next
// Dados do provedor STMP como IP e PORTA
smtp_server := aProvedor[ nPosicao, 3 ]
smtp_Port := aProvedor[ nPosicao, 5 ]
if ! portSMTP = nil
smtp_Port:= portSMTP
endif
// Se autentica pega porta segura
lAuth := aProvedor[ nPosicao, 4 ]
smtp_SSL := aProvedor[ nPosicao, 7 ]
// Configuração do motor de envio
txtCDOSYS := "http://schemas.microsoft.com/cdo/configuration/"
objCDOSYSCon:=TOleAuto():New( "CDO.Configuration" )
objCDOSYSCon:Fields:Item( txtCDOSYS + "smtpserver" ):Value := smtp_server
objCDOSYSCon:Fields:Item( txtCDOSYS + "smtpserverport" ):Value := smtp_Port
objCDOSYSCon:Fields:Item( txtCDOSYS + "sendusing" ):Value := 2
if lAuth // Configura autenticação
objCDOSYSCon:Fields:Item( txtCDOSYS + "smtpauthenticate" ):Value := 1
objCDOSYSCon:Fields:Item( txtCDOSYS + "sendusername" ):Value := smtp_user
objCDOSYSCon:Fields:Item( txtCDOSYS + "sendpassword" ):Value := smtp_pass
endif
if smtp_SSL // Força segurança
objCDOSYSCon:Fields:Item( txtCDOSYS + "smtpusessl" ):Value := .t.
endif
objCDOSYSCon:Fields:Item( txtCDOSYS + "smtpconnectiontimeout" ):Value := 30
objCDOSYSCon:Fields:update()
objCDOSYSMail:=TOleAuto():New( "CDO.Message" )
objCDOSYSMail:Configuration := objCDOSYSCon
objCDOSYSMail:From := mail_from
objCDOSYSMail:To := mail_to
objCDOSYSMail:Subject := mail_subject
if lHtml // Se o formato da mensagem for HTML, configura...
objCDOSYSMail:HTMLBody := mail_message // + CRLF + CRLF + MemoRead( mail_attach )
else // ...senao o padrao sera texto
objCDOSYSMail:TextBody := mail_message // + CRLF + CRLF + MemoRead( mail_attach )
endif
// Se forem passados anexos em um vetor acrescenta cada um
if ValType( mail_attach ) == "A"
For nEle := 1 To Len( mail_attach )
objCDOSYSMail:AddAttachment( AllTrim(mail_attach[ nEle ]) )
Next
else // Se for passado somente um anexo
objCDOSYSMail:AddAttachment( AllTrim(mail_attach) )
endif
//If ! Empty( cBCC )
// objCDOSYSMail:BCC = AllTrim(cBCC)
//EndIf
objCDOSYSMail:Send()
return .t.