20 de out. de 2010

Enviado E-Mail com SSL


Pessoal segue abaixo um exemplo do TDN de como enviar e-mail utilizando SSL.

Testei e funcionou corretamente.

user function sendMail()

local oServer  := Nil
local oMessage := Nil
local nErr     := 0


local cPopAddr  := "pop.example.com"      // Endereco do servidor POP3
local cSMTPAddr := "smtp.example.com"     // Endereco do servidor SMTP
local cPOPPort  := 110                    // Porta do servidor POP
local cSMTPPort := 465                    // Porta do servidor SMTP
local cUser     := "user@example.com"     // Usuario que ira realizar a autenticacao
local cPass     := "password"             // Senha do usuario
local nSMTPTime := 60                     // Timeout SMTP
            
// Instancia um novo TMailManager
oServer := tMailManager():New()   

// Usa SSL na conexao
oServer:setUseSSL(.T.)

// Inicializa
oServer:init(cPopAddr, cSMTPAddr, cUser, cPass, cPOPPort, cSMTPPort)

// Define o Timeout SMTP
if oServer:SetSMTPTimeout(nSMTPTime) != 0
  conout("[ERROR]Falha ao definir timeout")
  return .F.
endif

// Conecta ao servidor
nErr := oServer:smtpConnect()
if nErr <> 0
  conOut("[ERROR]Falha ao conectar: " + oServer:getErrorString(nErr))
  oServer:smtpDisconnect()
  return .F.
endif
                     
// Realiza autenticacao no servidor
nErr := oServer:smtpAuth(cUser, cPass)
if nErr <> 0
  conOut("[ERROR]Falha ao autenticar: " + oServer:getErrorString(nErr))
  oServer:smtpDisconnect()
  return .F.
endif

// Cria uma nova mensagem (TMailMessage)
oMessage := tMailMessage():new()
oMessage:clear()
oMessage:cFrom    := "sender@example.com"
oMessage:cTo      := "receiver@example.com"
oMessage:cCC      := "cc@example.com"
oMessage:cBCC     := "bcc@example.com"
oMessage:cSubject := "Assunto"
oMessage:cBody    := "Corpo do e-mail"
                                       
// Envia a mensagem
nErr := oMessage:send(oServer)
if nErr <> 0
  conout("[ERROR]Falha ao enviar: " + oServer:getErrorString(nErr))
  oServer:smtpDisconnect()
  return .F.
endif

// Disconecta do Servidor
oServer:smtpDisconnect()

return .T.

Nenhum comentário: