Histórico da Página
TSktSslSrv
Colapse ALL
Expand ALL
Classe: TSktSslSrv
Realiza a comunicação com o servidor de e-mail.
Hierarquia
A classe TSktSslSrv() não possui hierarquia. No entanto, é relacionada diretamente com a classe TMailMessage() para manipulação de mensagem, envio e recebimento de e-mail.
Construtores
New
New
Cria uma instância da classe TSktSslSrv.
Sintaxe
TSktSslSrv(): New ( ) --> oRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nSSL2 | Caracter | Indica o nome da pasta desejada no servidor. | X |
|
Retorno
oRet
(objeto)
- Retorna uma nova instância do objeto da classe TSktSslSrv.
Observações
Métodos
ChangeFolder
ChangeFolder
Permite trocar de pasta, no servidor IMAP - Internet Message Access Protocol, informando uma nova pasta.
Sintaxe
TSktSslSrv(): ChangeFolder ( < cFolder> ) --> lReturn
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cFolder | Caracter | Indica o nome da pasta desejada no servidor. | X |
|
Retorno
lReturn
(lógico)
- Retorna verdadeiro (.T.), se a pasta informada for válida (existir) para realizar a troca de pasta; caso contrário, retorna falso (.F.).
Observações
CopyMsg
CopyMsg
Copia uma mensagem da pasta corrente, do servidor IMAP - Internet Message Access Protocol, para outra pasta ou a mesma.
Sintaxe
TSktSslSrv(): CopyMsg ( < nMsg>, < cPasta> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nMsg | Numérico | Indica o valor numérico ou ID (identificação) da mensagem no servidor de e-mail IMAP. | X |
|
cPasta | Caracter | Indica o nome da pasta, do servidor de e-mail IMAP, para a qual a mensagem será transferida. | X |
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.) se realizar a copia da mensagem para a pasta informada; caso contrário, retornará falso (.F.).
Observações
CreateFolder
CreateFolder
Cria uma nova pasta de mensagens no servidor de e-mails IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): CreateFolder ( < cFolder> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cFolder | Caracter | Indica o nome da pasta que será criada. Observação: Caso seja uma subpasta, informe a hierarquia das pastas. | X |
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.) se a pasta for criada com sucesso no servidor; caso contrário, retornará falso (.F.).
Observações
DeleteFolder
DeleteFolder
Exclui uma pasta do servidor IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): DeleteFolder ( < cPasta> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cPasta | Caracter | Indica o nome da pasta que será excluída. | X |
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.) se a pasta for excluída com sucesso; caso contrário, retornará falso (.F.).
Observações
DeleteMsg
DeleteMsg
Exclui uma mensagem do servidor de e-mail.
Sintaxe
TSktSslSrv(): DeleteMsg ( < nMsg> ) --> nReturn
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nMsg | Numérico | Indica o número da mensagem que será excluída. | X |
|
Retorno
nReturn
(numérico)
- Retorna 0 (zero), se encontrar e excluir a mensagem; caso contrário, retornará o código do erro ocorrido.
Observações
Exemplos
#INCLUDE "TOTVS.CH"
#DEFINE EMAIL_ACCOUNT 'p10teste'
#DEFINE EMAIL_PASSWORD '123'
#DEFINE EMAIL_POPSERVER 'pop3.provedor.com.br'
#DEFINE EMAIL_SMTPSERVER 'smtp.provedor.com.br'
User Function mail004()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
Local nNumMsg := 0
oMail:Init(EMAIL_POPSERVER, EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:PopConnect()
If nRet == 0
conout("Open Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:GetNumMsgs(@nNumMsg)
If nRet == 0
conout("Count Successful")
conout(nNumMsg)
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
If nNumMsg > 0
nRet := oMail:DeleteMsg( 1 )
If nRet == 0
conout("Delete Successful")
conout(nNumMsg)
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
Else
conout("não há mensagens para deletar")
Endif
oMail:PopDisConnect()
Return
EndGetAllMsgHeader
EndGetAllMsgHeader
Obtém o cabeçalho de todas as mensagens existentes no servidor IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): EndGetAllMsgHeader ( < @aCabecalho> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
aCabecalho | Vetor | Indica o array que será utilizado como referência para retornar o cabeçalho da mensagem. | X | X |
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.) quando o servidor IMAP terminar o envio do cabeçalho da mensagem; caso contrário, retornará falso (.F.).
Observações
Exemplos
User Function GetMessages()
Local oMailManager := Nil
Local oMessage := Nil
Local nError := 0
Local aHeaders := {}
oMailManager := tSktSslSrv():New()
oMailManager:Init("apolo.sp01.local", "", "user", "pass")
nError := oMailManager:IMAPConnect()
If nError <> 0
ConOut(oMailManager:GetErrorString(nError))
Return MsgStop(oMailManager:GetErrorString(nError), "oMailManager:IMAPConnect")
EndIf
oMailManager:StartGetAllMsgHeader( "FOLDER", { "From", "Subject", "To" } )
while (!oMailManager:EndGetAllMsgHeader( @aHeaders ))
Sleep( 100 )
endDo
nError := oMailManager:IMAPDisconnect()
If nError <> 0
ConOut(oMailManager:GetErrorString(nError))
Return MsgStop(oMailManager:GetErrorString(nError), "oMailManager:IMAPDisconnect")
EndIf
return
GetAllFolderList
GetAllFolderList
Retorna todas as pastas (Assinadas/Não assinadas) de uma conta de e-mail do servidor IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): GetAllFolderList ( ) --> aRet
Retorno
aRet
(vetor)
- Retorna um array com todas as pastas (Assinadas/Não assinadas), de uma conta de e-mail, com as seguintes informações: status, nome e número de mensagens existentes (lidas e não lidas).
Observações
GetErrorString
GetErrorString
Obtém a descrição do código de erro informado.
Sintaxe
TSktSslSrv(): GetErrorString ( < nError> ) --> cReturn
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nError | Numérico | Indica o código numérico do erro. | X |
|
Retorno
cReturn
(caracter)
- Retorna uma string com a descrição do código de erro informado.
Observações
GetFolder
GetFolder
Obtém o nome da pasta, no qual o servidor do sistema (exemplo Microsiga Protheus) está posicionado no servidor IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): GetFolder ( ) --> cRet
Retorno
cRet
(caracter)
- Retorna uma string com o nome da pasta em uso pela aplicação. Exemplo: Inbox.
Observações
GetFolderList
GetFolderList
Obtém todas as pastas assinadas de uma conta de e-mail, através do servidor IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): GetFolderList ( ) --> aRet
Retorno
aRet
(vetor)
- Retorna um array com todas as pastas assinadas, de uma conta de e-mail, com as seguintes informações: status, nome e número de mensagens existentes (lidas e não lidas).
Observações
- Utilize esse método somente para conexão IMAP.
- Esse método retorna todas as pastas assinadas (pastas habilitadas ou Subscribe) em forma de array.
- Cada pasta contém informações de status, nome e número de mensagens existentes (lidas e não lidas).
Exemplo de estrutura de retorno:
array[1]
array[1][1]:cNome
array[1][2]:cStatus
array[1][3]:nNumMsg
array[1][4]:nNumMsgRecentes
array[1][5]:nNumMsgNaoLidas
Sendo:
cStatus | Descrição |
I | NOINFERIOS |
N | NOSELECT |
M | MARKED |
U | UNMARKED |
GetMsgBody
GetMsgBody
Obtém o corpo da mensagem informada através do parâmetro <nMsg>.
Sintaxe
TSktSslSrv(): GetMsgBody ( < nMsg> ) --> aBodyMsg
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nMsg | Numérico | Indica o número sequencial da mensagem que deseja obter. | X |
|
Retorno
aBodyMsg
(vetor)
- Retorna um array com as informações da mensagem.
Observações
GetMsgHeader
GetMsgHeader
Obtém o cabeçalho da mensagem, retornando os campos que foram incluídos na mensagem.
Sintaxe
TSktSslSrv(): GetMsgHeader ( < nMsg> ) --> aRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nMsg | Numérico | Indica o número da mensagem na pasta do servidor de e-mail IMAP. | X |
|
Retorno
aRet
(vetor)
- Retorna um array com os campos do cabeçalho da mensagem. Em caso de erro, retorna nulo.
Observações
- Utilize esse método somente para conexão IMAP.
- Caso a conexão utilizada não seja IMAP, será retornado nulo.
- O retorno será nulo se ocorrer algum problema para obter o cabeçalho da mensagem.
Estrutura de retorno do método
aRet[1]
aRet[1][1] : No. Sequencial da Mensagem.
aRet[1][2] : Tamanho Total da Mensagem.
aRet[1][3] : Flags em Formato Numérico.
aRet[1][4] : Data e Hora da Mensagem.
aRet[1][5] : UID da Mensagem.
aRet[1][6] : Subarray de campos do header da mensagem.
aRet[1][6][1] : TO
aRet[1][6][1] : FROM
aRet[1][6][1] : etc ...
GetNumMsgs
GetNumMsgs
Obtém o número de mensagens existentes no servidor de e-mail.
Sintaxe
TSktSslSrv(): GetNumMsgs ( < @nNumMsg> ) --> nReturn
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nNumMsg | Numérico | Parâmetro passado por referência. Neste parâmetro, será retornado o número de mensagens que estão no servidor. | X | X |
Retorno
nReturn
(numérico)
- Retorna 0 (zero) se a execução for realizada com sucesso; caso contrário, será retornado o código de erro ocorrido.
Observações
Exemplos
#INCLUDE "TOTVS.CH"
#DEFINE EMAIL_ACCOUNT 'p10teste'
#DEFINE EMAIL_PASSWORD '123'
#DEFINE EMAIL_POPSERVER 'pop3.provedor.com.br'
#DEFINE EMAIL_SMTPSERVER 'smtp.provedor.com.br'
User Function mail003()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
Local nNumMsg := 0
oMail:Init(EMAIL_POPSERVER, EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:PopConnect()
If nRet == 0
conout("Open Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:GetNumMsgs(@nNumMsg)
If nRet == 0
conout("Count Successful")
conout(nNumMsg)
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
oMail:PopDisconnect()
return
GetPOPTimeOut
GetPOPTimeOut
Obtém o tempo de espera para uma conexão estabelecida com o servidor de e-mail POP - Post Office Protocol.
Sintaxe
TSktSslSrv(): GetPOPTimeOut ( ) --> nTimeOut
Retorno
nTimeOut
(numérico)
- Retorna o tempo de espera em segundos.
Observações
- Se a conexão utilizada for usando o protocolo IMAP, essa função retornará o tempo de espera configurado no servidor IMAP.
Exemplos
User Function mail007()
Local oMail := tSktSslSrv():NEW()
Local nTimeOut := 0
oMail:Init(EMAIL_POPSERVER, EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nTimeOut := oMail:GetPOPTimeout()
conout("GetPOPTimeout")
conout(nTimeOut)
Return
GetSMTPTimeOut
GetSMTPTimeOut
Define o tempo de espera para uma conexão estabelecida com o servidor de e-mail SMTP - Simple Mail Transfer Protocol.
Sintaxe
TSktSslSrv(): GetSMTPTimeOut ( ) --> nTimeOut
Retorno
nTimeOut
(numérico)
- Retorna o tempo de espera em segundos.
Observações
Exemplos
User Function mail006()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
oMail:Init("", EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:GetSMTPTimeout()
conout("GetSMTPTimeout:")
conout(nret)
nret := oMail:SMTPConnect()
If nRet == 0
conout("Connect Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:SmtpDisconnect()
If nRet == 0
conout("Disconnect Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
return
GetUser
GetUser
Obtém o nome do usuário de e-mail, informado nos métodos de inicialização ou autenticação, antes do símbolo @ (arroba), da conta de e-mail em uso.
Sintaxe
TSktSslSrv(): GetUser ( ) --> cRet
Retorno
cRet
(caracter)
- Retorna uma string com o nome da conta de e-mail em uso.
Observações
IMAPConnect
IMAPConnect
Realiza a conexão com o servidor IMAP - Internet Message Access Protocol. É necessário configurar o arquivo de configuração (.INI), do Application Server, com a seção [MAIL] e a chave Protocol=IMAP.
Sintaxe
TSktSslSrv(): IMAPConnect ( ) --> nRet
Retorno
nRet
(numérico)
- Retorna 0 (zero), se realizar a conexão com o servidor IMAP; caso contrário, retornará um código de erro.
Observações
IMAPDisconnect
IMAPDisconnect
Encerra a conexão entre a aplicação e o servidor IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): IMAPDisconnect ( ) --> nRet
Retorno
nRet
(numérico)
- Retorna 0 (zero), se finalizar a conexão com o servidor IMAP; caso contrário, retornará um código de erro.
Observações
- Antes de desconectar, será chamada a função de Purge do IMAP.
IMAPStore
IMAPStore
Armazena uma mensagem em alguma pasta do servidor de e-mail IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): IMAPStore ( < cPasta>, < oMsg> ) --> nRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cPasta | Caracter | Indica uma string que contém o nome da pasta que armazenará a mensagem. | X |
|
oMsg | Objeto | Indica um objeto, da classe TMailMessage, que contém informações da mensagem que será armazenada. | X |
|
Retorno
nRet
(numérico)
- Retorna um número inteiro com o status da operação. Caso seja executado com sucesso, será retornado 0 (zero); caso contrário, retornará valores de erro.
Observações
- Utilize esse método somente para conexão IMAP.
- Não é preciso estar posicionado na pasta de destino .
- O parâmetro deve ser um objeto do tipo TMailMessage().
- Esse método armazenará a mensagem passada, no parâmetro , no servidor IMAP da pasta informada no parâmetro.
Init
Init
Define as configuraçãoes, da classe TSktSslSrv, para realizar uma conexão com o servidor de e-mail.
Sintaxe
TSktSslSrv(): Init ( < cMailServer>, < cSmtpServer>, < cAccount>, < cPassword>, [ nMailPort], [ nSmtpPort] ) --> nReturn
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cMailServer | Caracter | Indica o endereço ou alias do servidor de e-mail IMAP/POP/MAPI. | X |
|
cSmtpServer | Caracter | Indica o endereço ou alias do servidor de e-mail SMTP. | X |
|
cAccount | Caracter | Indica a conta de e-mail do usuário no servidor de e-mail | X |
|
cPassword | Caracter | Indica a senha do usuário no servidor de e-mail. | X |
|
nMailPort | Numérico | Indica a porta de comunicação para conexão IMAP/POP/MAPI. |
|
|
nSmtpPort | Numérico | Indica a porta de comunicação para conexão SMTP (Padrão 25). |
|
|
Retorno
nReturn
(numérico)
- Retorna sempre 0 (zero). Exceto quando for utilizado o protocolo MAPI e o servidor não estiver rodando em plataforma Windows, o retorno será -1.
Observações
Exemplos
#INCLUDE "TOTVS.CH"
#DEFINE EMAIL_ACCOUNT 'p10teste'
#DEFINE EMAIL_PASSWORD '123'
#DEFINE EMAIL_POPSERVER 'pop3.microsiga.com.br'
#DEFINE EMAIL_SMTPSERVER 'smtp.microsiga.com.br'
//Exemplo conectando em um servidor POP, na porta padrão
//obs: neste caso não é necessário incluir chave no ini
User Function mail001()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
oMail:Init(EMAIL_POPSERVER, EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:PopConnect()
If nRet == 0
conout("Sucess")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
oMail:PopDisconnect()
return
MoveMsg
MoveMsg
Move uma mensagem da pasta em uso, do servidor IMAP - Internet Message Access Protocol, para outra pasta contida na conta de e-mail.
Sintaxe
TSktSslSrv(): MoveMsg ( < nMsg>, < cPasta> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nMsg | Numérico | Indica o número sequencial da mensagem que desejamos obter. | X |
|
cPasta | Caracter | Indica uma string que contém o nome da pasta que armazenará a mensagem. | X |
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.) caso tenha sido movida a mensagem com sucesso; caso contrário, retornará falso (.F.).
Observações
POPConnect
POPConnect
Conecta com o servidor de e-mail POP - Post Office Protocol.
Sintaxe
TSktSslSrv(): POPConnect ( ) --> nReturn
Retorno
nReturn
(numérico)
- Retorna 0 (zero) quando a operação é completada com sucesso; caso contrário, retornará um código de erro.
Observações
- A conexão será realizada com o servidor POP usando a porta configurada no método Init() e a opção definida pelas função SetUseSSL().
- É possível informar uma porta diferente da padrão (110) para o protocolo POP, caso seja necessário. Quando nenhuma porta é informada, a porta padrão (110) é utilizada.
- Caso o protocolo IMAP esteja definido para ser utilizado (no arquivo de configuração (INI) do TOTVS Application Server, na seção Mail, a chave Protocol ser definida como o valor "IMAP"), a função irá realizar a conexão IMAP, lendo e definindo as chaves AUTHNTLM (lógico) e AUTHLOGIN (lógico) da seção Mail no arquivo de configuração (INI) do TOTVS Application Server, cujos valores são verdadeiros por padrão.
- A conexão será realizada com o servidor, autenticando de acordo com os dados (conta de e-mail e senha) configurados no método Init().
Exemplos
#INCLUDE "TOTVS.CH"
#DEFINE EMAIL_ACCOUNT 'p10teste'
#DEFINE EMAIL_PASSWORD '123'
#DEFINE EMAIL_POPSERVER 'pop3.microsiga.com.br'
#DEFINE EMAIL_SMTPSERVER 'smtp.microsiga.com.br'
User Function tstmail001()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
oMail:Init(EMAIL_POPSERVER, EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:PopConnect()
If nRet == 0
conout("Success")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
oMail:PopDisconnect()
return
POPDisconnect
POPDisconnect
Encerra a conexão com o servidor de e-mail POP - Post Office Protocol.
Sintaxe
TSktSslSrv(): POPDisconnect ( ) --> nReturn
Retorno
nReturn
(numérico)
- Retorna 0 (zero) ao encerrar a conexão com sucesso; caso contrário, será retornado um código de erro.
Observações
- Caso o protocolo IMAP esteja definido para ser utilizado (no arquivo de configuração (INI) do TOTVS Application Server, na seção Mail, a chave Protocol ser definida como o valor "IMAP"), a função irá realizar a desconexão do protocolo IMAP, chamando um comando de Purge antes de desconectar.
Exemplos
#INCLUDE "TOTVS.CH"
#DEFINE EMAIL_ACCOUNT 'p10teste'
#DEFINE EMAIL_PASSWORD '123'
#DEFINE EMAIL_POPSERVER 'pop3.microsiga.com.br'
#DEFINE EMAIL_SMTPSERVER 'smtp.microsiga.com.br'
User Function tstmail002()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
oMail:Init(EMAIL_POPSERVER, EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:PopConnect()
If nRet == 0
conout("Open Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:PopDisConnect()
If nRet == 0
conout("Close Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
return
Purge
Purge
Remove permanentemente todas as mensagens contidas na caixa de e-mail e pasta informada, que contenham a <Deleted> definidas.
Sintaxe
TSktSslSrv(): Purge ( < cPasta> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cPasta | Caracter | Indica uma string que contém o nome da pasta que será realizado o purge. | X |
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.) caso tenha sido possível realizar a operação com sucesso; caso contrário, retornará falso (.F.).
Observações
- Utilize esse método somente para conexão IMAP.
- Para realizar o purge não é preciso estar posicionado na pasta.
RenameFolder
RenameFolder
Altera o nome da pasta no servidor de e-mail IMAP - Internet Message Access Protocol.
Sintaxe
TSktSslSrv(): RenameFolder ( [ cPastaAtual], [ cPastaNova] ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cPastaAtual | Caracter | Indica o nome atual da pasta no servidor de e-mail IMAP. Observação: O nome informado nesse parâmetro, deve ser idêntico ao gravado no servidor; caso contrário, a pasta não será encontrada. |
|
|
cPastaNova | Caracter | Indica o novo nome da pasta. |
|
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.), se alterar o nome da pasta; caso contrário, retornará falso (.F.).
Observações
SendMail
SendMail
Envia e-mail através do protocolo SMTP - Simple Mail Transfer Protocol ou MAPI. O método SendMail é obsoleto a partir de builds superiores a 7.00.101202A. Para envio de mensagens via SMTP, crie uuma instância de mensagem usando a classe TMailMessage, e utilize o método Send() da mensagem. Para mais informações, consulte a documentação da classe TMailMessage.
Sintaxe
TSktSslSrv(): SendMail ( < cFrom>, < cTo>, [ cSubject], [ cBody], [ cCC], [ cBCC], [ aAttach], < nNumAttach>, [ nPriority] ) --> nReturn
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cFrom | Caracter | Indica o endereço de uma conta de e-mail (remetente) para representar o e-mail enviado. Exemplo: usuá[email protected]. | X |
|
cTo | Caracter | Indica o endereço de uma conta de e-mail que será utilizada para enviar o respectivo e-mail. | X |
|
cSubject | Caracter | Indica o assunto do e-mail. Caso não seja especificado, o assunto será enviado em branco. Observação: Esse parâmetro é opcional. |
|
|
cBody | Caracter | Indica o conteúdo da mensagem que será enviada. Observação: Esse parâmetro é opcional. |
|
|
cCC | Caracter | Indica o endereço de e-mail, na seção Com Cópia (CC), que receberá a mensagem. Observação: Esse parâmetro é opcional. |
|
|
cBCC | Caracter | Indica o endereço de e-mail, na seção Cópia Oculta, que receberá a mensagem. Observação: Esse parâmetro é opcional. |
|
|
aAttach | Vetor | Indica um array de caracteres com o caminho do arquivo que será anexado no e-mail. Observação: Esse parâmetro é opcional. |
|
|
nNumAttach | Numérico | Indica a quantidade de arquivos que serão anexados no e-mail, no caso a quantidade de elementos do array. | X |
|
nPriority | Numérico | Indica a prioridade da mensagem. Caso não seja preenchido, a prioridade será normal. Observação: Esse parâmetro é opcional. |
|
|
Retorno
nReturn
(numérico)
- Retorna 0 (zero) se o e-mail for enviado com sucesso; caso contrário, retornará um código de erro.
Observações
Exemplos
User Function mail008()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
oMail:Init("", EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:SetSMTPTimeout(60) //1 min
If nRet == 0
conout("SetSMTPTimeout Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nret := oMail:SMTPConnect()
If nRet == 0
conout("Connect Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:SendMail( "[email protected]" ,;
"[email protected]" ,;
"SUBJECT" ,;
"BODY" ,;
"" ,;
"" ,;
{} ,;
0 )
If nRet == 0
conout("SendMail Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:SmtpDisconnect()
If nRet == 0
conout("Disconnect Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
return
SetFolderSubscribe
SetFolderSubscribe
Define uma determinada pasta, do servidor de e-mail IMAP - Internet Message Access Protocol, assinada. Desta forma, a pasta ficará visível, na caixa de correio, e suas mensagens serão baixadas.
Sintaxe
TSktSslSrv(): SetFolderSubscribe ( < cPasta>, < lAssinado> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cPasta | Caracter | Indica o nome da pasta, no servidor de e-mail IMAP, que será ou não assinada (subscribe). | X |
|
lAssinado | Lógico | Indica se, verdadeiro (.T.), a pasta será assinada (subscribe); caso contrário, falso (.F.). | X |
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.), se a operação for realizada com sucesso; caso contrário, falso (.F.).
Observações
SetMsgFlag
SetMsgFlag
Define o status de uma determinada mensagem.
Sintaxe
TSktSslSrv(): SetMsgFlag ( < nNumMsg>, < cFlag> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nNumMsg | Numérico | Indica o número da mensagem que terá o status (flag) alterado. | X |
|
cFlag | Caracter | Indica o novo status da mensagem, sendo: A=Answered, F=Flagged, D=Deleted, S=Seen, R=Draft, C=Recent, P=Special. | X |
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.), se a mensagem for posicionada corretamente; caso contrário, retornará falso (.F.).
Observações
SetPOPTimeout
SetPOPTimeout
Define o tempo de espera para uma conexão estabelecida com o servidor de e-mail POP - Post Office Protocol.
Sintaxe
TSktSslSrv(): SetPOPTimeout ( < nTimeout> ) --> nRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nTimeout | Numérico | Indica o tempo de espera em segundos. | X |
|
Retorno
nRet
(numérico)
- Retorna 0 (zero) se o tempo de espera for definido com sucesso; caso contrário, será retornado um código de erro.
Observações
- Se a conexão utilizada for usando o protocolo IMAP, essa função definirá o tempo de espera no servidor IMAP.
Exemplos
User Function mail004()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
Local nNumMsg := 0
oMail:Init(EMAIL_POPSERVER, EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:SetPOPTimeout(120) //2 min
If nRet == 0
conout("SetPOPTimeout Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nret := oMail:PopConnect() //contém limite de 2min
If nRet == 0
conout("Open Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:GetNumMsgs(@nNumMsg) //contém limite de 2min
If nRet == 0
conout("Count Successful")
conout(nNumMsg)
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
If nNumMsg > 0
nRet := oMail:DeleteMsg( 1 ) //contém limite de 2min
If nRet == 0
conout("Delete Successful")
conout(nNumMsg)
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
Else
conout("No messages to delete")
Endif
oMail:PopDisconnect()
Return
SetSMTPTimeout
SetSMTPTimeout
Define o tempo de espera para uma conexão estabelecida com o servidor de e-mail SMTP - Simple Mail Transfer Protocol.
Sintaxe
TSktSslSrv(): SetSMTPTimeout ( < nTimeOut> ) --> nRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
nTimeOut | Numérico | Indica o tempo de espera em segundos. | X |
|
Retorno
nRet
(numérico)
- Retorna 0 (zero) quando a operação é completada com sucesso; caso contrário, o retorno será um código de erro.
Observações
Exemplos
User Function mail006()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
oMail:Init("", EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:SetSMTPTimeout(60) //1 min
If nRet == 0
conout("SetSMTPTimeout Sucess")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nret := oMail:SMTPConnect()
If nRet == 0
conout("Connect Sucess")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:SmtpDisconnect()
If nRet == 0
conout("Disconnect Sucess")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
return
SetUseRealID
SetUseRealID
Define o tipo de identificação, no servidor de e-mail IMAP - Internet Message Access Protocol, para utilização do ID único da mensagem para a busca de mensagens.
Sintaxe
TSktSslSrv(): SetUseRealID ( < lOpt> ) --> Nil
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
lOpt | Lógico | Indica o tipo de identificador que será utilizado. Se configurado verdadeiro (.T.), será utilizado o ID real da mensagem; caso contrário, falso (.F.) será utilizado o número da mensagem. | X |
|
Observações
- Essa função impacta no comportamento das funções CopyMsg, MoveMsg, DeleteMsg, SetMsgFlag, GetMsgHeader e GetMsgBody.
SetUseSSL
SetUseSSL
Define o envio de e-mail utilizando uma comunicação segura através do SSL - Secure Sockets Layer. Deve ser chamado antes de executar o método Init().
Sintaxe
TSktSslSrv(): SetUseSSL ( [ lUseSSL] ) --> Nil
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
lUseSSL | Lógico | Indica se, verdadeiro (.T.), utilizará a comunicação segura através de SSL/TLS; caso contrário, falso (.F.). | X |
|
Observações
Exemplos
user function tstgmail()
Local oMail, oMessage
Local nErro
oMail := TSktSslSrv():New()
oMail:SetUseSSL(.T.)
oMail:Init( '', 'smtp.gmail.com' , "[email protected]", "userpass", 0, 465 )
oMail:SetSmtpTimeOut( 120 )
conout('Conectando do SMTP')
nErro := oMail:SmtpConnect()
if nErro <> 0
conout("ERROR:" + oMail:GetErrorString(nErro))
oMail:SMTPDisconnect()
return .F.
Endif
nErro := oMail:SmtpAuth("[email protected]" ,"userpass")
If nErro <> 0
conout("ERROR:" + oMail:GetErrorString(nErro))
oMail:SMTPDisconnect()
return .F.
Endif
oMessage := TMailMessage():New()
oMessage:Clear()
oMessage:cFrom := "[email protected]"
oMessage:cTo := "[email protected]"
oMessage:cCc := ""
oMessage:cSubject := "Teste de Envio de E-mail " + time()
oMessage:cBody := "<hr>Envio de e-mail via Protheus<hr>"
nErro := oMessage:Send( oMail )
if nErro <> 0
conout("ERROR:" + oMail:GetErrorString(nErro))
oMail:SMTPDisconnect()
return .F.
Endif
conout('Desconectando do SMTP')
oMail:SMTPDisconnect()
return .T.
Veja Também
TMailMessage
SetUseTLS
SetUseTLS
Define no envio de e-mail o uso de STARTTLS durante o protocolo de comunicação. Deve ser chamado antes de executar o método Init().
Sintaxe
TSktSslSrv(): SetUseTLS ( < lTLS> ) --> Nil
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
lTLS | Lógico | Indica se, verdadeiro (.T.), utilizará a comunicação segura através de SSL/TLS; caso contrário, falso (.F.). | X |
|
Observações
SMTPAuth
SMTPAuth
Realiza a autenticação no servidor de e-mail SMTP - Simple Mail Transfer Protocol para envio de mensagens.
Sintaxe
TSktSslSrv(): SMTPAuth ( < cUser>, < cPass> ) --> nRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cUser | Caracter | Indica o usuário no qual será feita a autenticação. | X |
|
cPass | Caracter | Indica a senha do usuário para autenticação. | X |
|
Retorno
nRet
(numérico)
- Retorna um número inteiro com o status da operação. Caso seja executado com sucesso, o retorno será 0 (zero); caso contrário, retornará valores de erro.
Observações
- O método SMTPAuth ao tentar realizar a autenticação do usuário no servidor de e-mail, verifica a configuração da chave AuthSmtp, na seção [Mail], no arquivo de configuração (INI) do TOTVS Application Server, para determinar o valor.
- Se a conexão, do tipo POP/POP3, estiver sendo utilizada para envio de e-mail, o sistema verificará as chaves SmtpPopServer e SmtpPopPort, na seção [Mail], e realizará a autenticação pela conexão com o servidor POP. (Isto é realizado devido a configuração determinada por alguns servidores de e-mail). Caso contrário, será realizada a autenticação do usuário no servidor SMTP, através dos protocolos de autenticação suportados (LOGIN, NTLM e PLAIN).
- Por padrão, o servidor habilita a tentativa de autenticação pelos protocolos LOGIN e NTLM. No entanto, é possível desabilitar algum tipo de autenticação através das chaves AuthNTLM=0 ou AuthLogin=0, na seção [Mail], do arquivo de configuração (INI) do TOTVS Application Server.
- Para habilitar a autenticação do tipo PLAIN, é necessário definir no arquivo de configuração (INI), do TOTVS Application Server, a chave AuthPlain=1, na seção [Mail].
Exemplos
User function tstsmtp(cSMTPServer, cPort, cUser, cAccount, cPass, lAuth, nTimeout)
Local oServer := Nil
Local oMessage := Nil
Local nret := 0
oServer := TSktSslSrv():New()
oServer:Init( "", cSMTPServer, cAccount, cPass, 0, val(cPort) )
if (nTimeout <= 0)
conout("[TIMEOUT] DISABLE")
else
conout("[TIMEOUT] ENABLE()")
nRet := oServer:SetSmtpTimeOut( 120 )
If nRet != 0
conout("[TIMEOUT] Fail to set")
conout("[TIMEOUT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
Return .F.
EndIf
Endif
Conout( "[SMTPCONNECT] connecting ..." )
nRet := oServer:SmtpConnect()
If nRet != 0
conout("[SMTPCONNECT] Falha ao conectar" )
conout("[SMTPCONNECT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
Return .F.
Else
conout( "[SMTPCONNECT] Sucesso ao conectar" )
EndIf
If lAuth
conout("[AUTH] ENABLE")
conout("[AUTH] TRY with ACCOUNT() and PASS()")
// try with account and pass
nRet := oServer:SMTPAuth(cAccount, cPass)
If nRet != 0
conout("[AUTH] FAIL TRY with ACCOUNT() and PASS()")
conout("[AUTH][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
conout("[AUTH] TRY with USER() and PASS()")
// try with user and pass
nRet := oServer:SMTPAuth(cUser, cPass)
If nRet != 0
conout("[AUTH] FAIL TRY with USER() and PASS()")
conout("[AUTH][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
Return .F.
else
conout("[AUTH] SUCEEDED TRY with USER() and PASS()")
Endif
else
conout("[AUTH] SUCEEDED TRY with ACCOUNT and PASS")
Endif
Else
conout("[AUTH] DISABLE")
Endif
conout("[MESSAGE] Criando mail message")
oMessage := TMailMessage():New()
oMessage:Clear()
oMessage:cFrom := cAccount
oMessage:cTo := "[email protected]"
oMessage:cCc := ""
oMessage:cBcc := ""
oMessage:cSubject := "Teste de Email " + dtoc(date()) + " " + time()
oMessage:cBody := "Teste"
conout("[SEND] Sending ...")
nRet := oMessage:Send( oServer )
If nRet != 0
conout("[SEND] Fail to send message" )
conout("[SEND][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
else
conout( "[SEND] Success to send message" )
EndIf
conout("[DISCONNECT] smtp disconnecting ... ")
nRet := oServer:SmtpDisconnect()
If nRet != 0
conout("[DISCONNECT] Fail smtp disconnecting ... ")
conout("[DISCONNECT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
else
conout("[DISCONNECT] Success smtp disconnecting ... ")
EndIf
return
SMTPConnect
SMTPConnect
Conecta com o servidor de e-mail SMTP - Simple Mail Transfer Protocol.
Sintaxe
TSktSslSrv(): SMTPConnect ( ) --> nReturn
Retorno
nReturn
(numérico)
- Retorna 0 (zero) quando a operação é completada com sucesso; caso contrário, retornará um código de erro.
Observações
- A conexão será realizada com o servidor SMTP usando a porta configurada no método Init() e as opções definidas pelas funções SetUseSSL() e SetUseTLS().
- É possível informar uma porta diferente da padrão (25) para o protocolo SMTP, caso seja necessário. Quando nenhuma porta é informada, a porta padrão (25) é utilizada.
- A função lê no arquivo de configuração (INI) do TOTVS Application Server, na seção Mail, as chaves LOCALHOST (caracter), EXTENDSMTP (lógico), AUTHNTLM (lógico) e AUTHLOGIN (lógico). EXTENDSMTP é habilitada por padrão e serve para enviar o comando EHLO para o servidor SMTP passando o valor definido em LOCALHOST, cujo valor padrão é "local.com". AUTHNTLM e AUTHLOGIN são definidos como habilitados por padrão na chamada da função SMTPConnect(), mas não influenciam a conexão com o servidor SMTP.
- Entre uma chamada a SMTPDisconnect() e SMTPConnect(), deve ser chamada a função Init() antes de SMTPConnect() para inicialização dos dados do servidor SMTP.
Exemplos
#INCLUDE "TOTVS.CH"
#DEFINE EMAIL_ACCOUNT 'p10teste'
#DEFINE EMAIL_PASSWORD '123'
#DEFINE EMAIL_SMTPSERVER 'smtp.totvs.com.br'
User Function mail005()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
oMail:Init("", EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:SMTPConnect()
If nRet == 0
conout("Success")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
oMail:SmtpDisconnect()
return
SMTPDisconnect
SMTPDisconnect
Finaliza a conexão entre a aplicação e o servidor de e-mail SMTP - Simple Mail Transfer Protocol.
Sintaxe
TSktSslSrv(): SMTPDisconnect ( ) --> nRet
Retorno
nRet
(numérico)
- Retorna 0 (zero) ao encerrar a conexão com sucesso; caso contrário, retornará um código de erro.
Observações
- Entre uma chamada a SMTPDisconnect() e SMTPConnect(), deve ser chamada a função Init() antes de SMTPConnect() para inicialização dos dados do servidor SMTP.
Exemplos
User Function mail006()
Local oMail := tSktSslSrv():NEW()
Local nRet := 0
oMail:Init("", EMAIL_SMTPSERVER, EMAIL_ACCOUNT, EMAIL_PASSWORD)
nret := oMail:SMTPConnect()
If nRet == 0
conout("Connect Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
nRet := oMail:SmtpDisconnect()
If nRet == 0
conout("Disconnect Successful")
Else
conout(nret)
conout(oMail:GetErrorString(nret))
Endif
return
StartGetAllMsgHeader
StartGetAllMsgHeader
Inicia o processo para adquirir todos os cabeçalhos (headers) e mensagens de uma determinada pasta.
Sintaxe
TSktSslSrv(): StartGetAllMsgHeader ( < cFolder>, < aHeader> ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cFolder | Caracter | Indica a pasta, no servidor de e-mail, em que serão adquiridos os cabeçalhos das mensagens. | X |
|
aHeader | Vetor | Indica as informações que serão retornadas nos cabeçalhos das mensagens. | X |
|
Retorno
lRet
(lógico)
- Retorna verdadeiro (.T.), se iniciar o processo para adquirir os cabeçalhos e mensagens; caso contrário, retornará falso (.F.).
Observações
Exemplos
User Function GetMessages()
Local oMailManager := Nil
Local oMessage := Nil
Local nError := 0
Local aHeaders := {}
oMailManager := tSktSslSrv():New()
oMailManager:Init("apolo.sp01.local", "", "user", "pass")
nError := oMailManager:IMAPConnect()
If nError <> 0
conout(oMailManager:GetErrorString(nError))
Return MsgStop(oMailManager:GetErrorString(nError), "oMailManager:IMAPConnect")
EndIf
oMailManager:StartGetAllMsgHeader( "FOLDER", { "From", "Subject", "To" } )
while (!oMailManager:EndGetAllMsgHeader( @aHeaders ))
Sleep( 100 )
endDo
nError := oMailManager:IMAPDisconnect()
If nError <> 0
conout(oMailManager:GetErrorString(nError))
Return MsgStop(oMailManager:GetErrorString(nError), "oMailManager:IMAPDisconnect")
EndIf
return
Observações
A classe TSktSslSrv() permite a utilização dos seguintes protocolos de e-mail:
- SMTP - Simple Mail Transfer Protocol É o protocolo de comunicação padrão para envio de e-mails através da internet. Através deste protocolo, é possível testar um servidor SMTP usando o programa Telnet. Sua porta TCP padrão é 25.
- SMTPS - Simple Mail Transfer Protocol with Secure Connection Trata-se do protocolo padrão para envio de e-mails (SMTP) , porém com conexão segura (SSL ou TLS) . Sua porta padrão é 465. O envio de e-mails também é suportado utilizando TLS, onde a aplicação inicia uma conexão não-segura, e o servidor de e-mails solicita o inicio de uma conversa segura a partir da instrução STARTTLS no protocolo. Para esta funcionalidade, a porta padrão é 587.
- POP - Post Office Protocol (POP3) É um protocolo de comunicação utilizado no acesso remoto a uma caixa de correio eletrônico. Todas as mensagens existentes na caixa de correio são transferidas, sequencialmente, para o computador local. Sua porta padrão é 110.
- POPS () - Post Office Protocol (POP3) with Secure Connection Trata-se do protocolo POP, porém com conexão segura (SSL) . Sua porta padrão é 995.
- IMAP - Internet Message Access Protocol É um protocolo de comunicação utilizado para gerenciar o correio eletrônico superior em recursos ao POP. Neste caso, as mensagens ficam armazenadas no servidor de e-mail, sendo possível efetuar pesquisas por mensagens diretamente no servidor. (Esse tipo de conexão está disponível apenas para servidores Microsoft Windows). Sua porta padrão é 143.
- IMAPS () - Internet Message Access Protocol with Secure Connection Trata-se do protocolo IMAP, com conexão segura (SSL) . Sua porta padrão é 993.
- MAPI - Messaging Application Programming Interface É um sistema construído no Microsoft Windows que habilita diferentes aplicações de e-mail para trabalharem em conjunto na distribuição de e-mail. Uma vez que ambas aplicações suportam MAPI, elas podem compartilhar mensagens de e-mail entre si.
O suporte ao protocolo SMTPS (SSL e/ou TLS) foi implementado a partir da build 7.00.090818P.
() O suporte aos protocolos POPS e IMAPS foram implementados a partir da build 7.00.101202A.
Exemplos
// Exemplo 1
// Este exemplo tem como objetivo principal documentar a classe tSktSslSrv, com
// foco nas funçoes que são usadas apenas por conexão IMAP.
//-----------------------------------------------------------------------------------
// Este exemplo irá fazer basicamente manipulação dos folders de uma conta de email,
// através de uma conexão com o servidor IMAP. Ex: imap.microsiga.com.br
//-----------------------------------------------------------------------------------
#include "TOTVS.CH"
User Function tstIMAP()
Local aStPastas := {}
Local sFolder := "TSTIMAP"
Local sErro := ""
Local lRet
Private oMailManager
oMailManager := TSktSslSrv():New()
//uso a função init para setar os dados.
If (nErro := oMailManager:Init( "imap.microsiga.com.br", "" , "seuNomeAntesDo@", "senhadoemail" )) != 0
sErro := oMailManager:GetErrorString( nErro )
Conout( sErro )
Return .F.
EndIf
//realizo uma CONEXAO IMAP
// Necessario configurar no arquivo .ini do server/[MAIL]Protocol=IMAP/
If (nErro := oMailManager:IMAPConnect()) != 0
sErro := oMailManager:GetErrorString( nErro )
Conout( sErro )
Return .F.
EndIf
//informo o server que iremos trabalhar com ID real da mensagem
oMailManager:SetUseRealID( .T. )
//tento ir para o folder TSTIMAP
If ! oMailManager:ChangeFolder( sFolder )
//entra aqui pq o folder nao existe, entao crio ele
//tento criar o folder no server IMAP
If !oMailManager:CreateFolder( sFolder )
Conout( "Erro na criação do folder" )
lRet := .F.
else
//set o folder como assinado, para aparecer
If !oMailManager:SetFolderSubscribe( sFolder, .T. )
Conout( "Erro na assinatura do folder" )
EndIf
EndIf
EndIf
//pego os folders(pastas) existentes no servidor, incluido o TSTIMAP
GetFolderList( @aStPastas )
varinfo("PASTAS", aStPastas)
//Verificamos o folder corrente em uso
sFolder := oMailManager:GetFolder()
conout("Folder Corrente" + sFolder)
If !oMailManager:DeleteFolder( sFolder )
conout("nao foi possivel deletar a pasta" + sFolder)
EndIf
oMailManager:IMAPDisconnect()
return .T.
Static function GetFolderList( aStPastas )
Local nI := 0, nTam := 0
Local aTemp := {}
Local aFolder
aTemp := oMailManager:GetFolderList()
nTam := Len( aTemp )
For nI := 1 To nTam
//crio um array temp {nome, nTotalMensagens, nMensagensNaoLidas, lAssinada}
aFolder := {}
aAdd(aFolder, aTemp[ nI ][1])
aAdd(aFolder, aTemp[ nI ][3])
aAdd(aFolder, aTemp[ nI ][5])
aAdd(aFolder, .T.)
//adiciono no array de referencia do parametro
aAdd( aStPastas, aFolder )
aFolder := NIL
Next
Return .T.
// Exemplo 2
// No exemplo abaixo , estabelecemos a conexão com um servidor SMTP , utilizando o
// comando CONNECT SMTP, obtendo o resultado da conexão , e em caso de falha, obtemos
// mais detalhes utilizando o comando GET MAIL ERROR . Caso a conexão seja realizada
// com sucesso, um e-mail de teste é enviado, tendo também seu status de execução
// recuperado e tratado convenientemente.
//-----------------------------------------------------------------------------------
#INCLUDE "Ap5Mail.ch"
User Function tstSMTP()
Local lOk
// Conecta com o Servidor SMTP
CONNECT SMTP SERVER "200.246.142.66" ;
ACCOUNT "test" PASSWORD "test1234" ;
RESULT lOk
If lOk
MsgStop( "Conexão OK" )
SEND MAIL FROM "[email protected]" ;
TO "[email protected];[email protected]" ;
SUBJECT "Teste de e-Mail" ;
BODY "E-MAIL HTML de TESTE" ;
RESULT lOk
If lOk
MsgStop( "Envio OK" )
Else
GET MAIL ERROR cSmtpError
MsgSTop( "Erro de envio : " + cSmtpError)
Endif
// Desconecta do Servidor
DISCONNECT SMTP SERVER
Else
GET MAIL ERROR cSmtpError
MsgStop( "Erro de conexão : " + cSmtpError)
Endif
Return
Abrangência
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
Veja Também
TMailMessage, Códigos de erro da classe TSktSslSrv