$PBExportHeader$uo_email.sru
forward
global type uo_email from nonvisualobject
end type
end forward
global type uo_email from nonvisualobject
end type
global uo_email uo_email
type variables
/* ***** Configurações do Servidor ***** */
String is_Server_SMTP // IP ou nome do servidor de SMTP
String is_Server_Port = '25' // Porta SMTP no servidor (default = 25)
String is_Server_UserId // ID ou login no servidor SMTP
String is_Server_UserPass // Password no servidor SMTP
Boolean ib_Server_smtpAuth // Se o servidor necessita de autenticação por login/senha (is_Server_UserId, is_Server_UserPass) (Default = False)
Boolean ib_Server_TLS_Encryption // Se o servidor SMTP requer criptografia TLS (Default = False)
//Ex. Para GMail:
//is_Server_SMTP = "smtp.gmail.com"
//is_Server_Port = "465"
//is_Server_UserId =
//is_Server_UserPass =
//ib_Server_smtpAuth = True
//ib_Server_TLS_Encryption = True
/* ***** Fim Configurações do Servidor ***** */
/* ***** Dados para envio do E-Mail ***** */
String is_email_to_name[] // Nomes para aparecer no endereço de email (destinatários) - Opcional
String is_email_to_address[] // Endereços de email (destinatários)
String is_email_from_name // Nome para aparecer no sender do email - Opcional
String is_email_from_address // Sender do email
String is_email_subject // Título do email
String is_email_body // Corpo (texto) do email
String is_email_attach[] // Anexos do email - Opcional
Boolean ib_email_receipt // Se deseja receber confirmação de recebimento (Default = False)
//Ex. de e-mail:
//is_email_to_name[1] = 'José da Silva'
//is_email_to_address[1] = 'jose@email.com'
//is_email_from_name[] 'Maria da Silva'
//is_email_from_address[] 'Maria@email.com'
//is_email_subject = 'Teste de e-mail'
//is_email_body 'Este é um email de teste'
//is_email_attach[1] = 'D:\Teste.txt'
//ib_email_receipt = False
/* ***** Fim Dados para envio do E-Mail ***** */
/* ***** Outras variáveis ***** */
end variables
forward prototypes
public function string of_send_email ()
public function string of_server_data ()
public function string of_email_data ()
end prototypes
public function string of_send_email ();
// Função principal para envio de email. Necessita do preenchimento das variáveis de instância de configuração do servidor
// e dos dados do e-mail.
String ls_ret
Long i
Boolean lb_ret
n_smtp ln_smtp
SetPointer(HourGlass!)
/* ***** Validações ***** */
// Dados do servidor
ls_ret = of_server_data()
If ls_ret <> '' Then Return ls_ret
// Dados do email
ls_ret = of_email_data()
If ls_ret <> '' Then Return ls_ret
/* ***** Fim Validações ***** */
/* ***** Dados para envio do email ***** */
ln_smtp.of_ResetAll()
// Propriedades do servidor
ln_smtp.of_SetServer(is_server_SMTP)
ln_smtp.of_SetPort(Long(is_server_Port))
If ib_Server_smtpAuth Then
ln_smtp.of_SetLogin(is_Server_UserId, is_Server_UserPass)
End If
// Dados do email
ln_smtp.of_SetReceipt(ib_email_receipt)
ln_smtp.of_SetLogFile(False)
ln_smtp.of_SetSubject(is_email_Subject)
ln_smtp.of_SetBody(is_email_body, False)
ln_smtp.of_SetFrom(is_email_from_address, is_email_from_name)
// Destinatários
For i = 1 To UpperBound(is_email_to_address[])
If UpperBound(is_email_to_name[]) >= i Then
ln_smtp.of_AddAddress(is_email_to_address[i], is_email_to_name[i])
Else
ln_smtp.of_AddAddress(is_email_to_address[i])
End If
Next
// Anexos
For i = 1 To UpperBound(is_email_attach[])
ln_smtp.of_AddAttachment(is_email_attach[i])
Next
/* ***** Fim Dados para envio do email ***** */
/* ***** Envia o e-mail ***** */
If ib_Server_TLS_Encryption Then
lb_ret = ln_smtp.of_SendTLSMail()
Else
lb_ret = ln_smtp.of_SendMail()
End If
If lb_ret Then
// Email enviado com sucesso
Return ''
Else
// Falha no envio do email
return ln_smtp.of_GetLastError()
End If
/* ***** Fim Envia o e-mail ***** */
end function
public function string of_server_data ();
// Valida os dados de configuração do servidor
is_server_SMTP = Trim(is_server_SMTP)
If IsNull(is_server_SMTP) or is_server_SMTP = '' Then Return 'Especifique o servidor SMTP'
is_Server_Port = Trim(is_Server_Port)
If IsNull(is_Server_Port) or IsNumber(is_Server_Port) = False or is_Server_Port = '0' Then Return 'Especifique a porta do servidor SMTP'
If ib_Server_smtpAuth Then
is_Server_UserId = Trim(is_Server_UserId)
If IsNull(is_Server_UserId) or is_Server_UserId = '' Then Return 'A opção de autenticação está marcada, então informe o usuário do servidor SMTP'
is_Server_UserPass = Trim(is_Server_UserPass)
If IsNull(is_Server_UserPass) or is_Server_UserPass = '' Then Return 'A opção de autenticação está marcada, então informe a senha do servidor SMTP'
End If
Return ''
end function
public function string of_email_data ();
// Valida os dados de envio do email
Long i
If UpperBound(is_email_to_address[]) = 0 Then Return 'Informe pelo menos 1 (um) destinatário'
If UpperBound(is_email_to_address[]) > 0 and UpperBound(is_email_to_name[]) > 0 and UpperBound(is_email_to_address[]) <> UpperBound(is_email_to_name[]) Then
Return 'A lista de nomes dos destinatários está com tamanho diferente da lista de emails dos destinatários'
End If
For i = 1 To UpperBound(is_email_to_name[])
is_email_to_name[i] = Trim(is_email_to_name[i])
Next
For i = 1 To UpperBound(is_email_to_address[])
is_email_to_address[i] = Trim(is_email_to_address[i])
Next
is_email_from_name = Trim(is_email_from_name)
is_email_from_address = Trim(is_email_from_address)
If IsNull(is_email_from_address) or is_email_from_address = '' Then Return 'Informe o sender do email'
is_email_subject = Trim(is_email_subject)
If IsNull(is_email_subject) or is_email_subject = '' Then Return 'Informe o título do email'
is_email_body = Trim(is_email_body)
If IsNull(is_email_body) or is_email_body = '' Then Return 'Informe o texto para o corpo do email'
Return ''
end function
on uo_email.create
call super::create
TriggerEvent( this, "constructor" )
end on
on uo_email.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on
Nenhum comentário:
Postar um comentário