Saltar para o conteúdo principal
Versão: 20 R9 BETA

SMTPTransporter

A classe SMTPTransporter permite-lhe configurar ligações SMTP e enviar correios eletrónicos através de objetos SMTP transporter.

Objecto SMTP Transporter

Os objetos SMTP Transporter são instanciados com o comando SMTP New transporter. Eles oferecem as propriedades abaixo e funções:

.acceptUnsecureConnection : Boolean
True se o 4D tiver permissão para estabelecer uma conexão não criptografada
.authenticationMode : Text
o modo de autenticação usado para abrir a sessão no servidor de e-mail
.bodyCharset : Text
o conjunto de caracteres e a codificação usados para a parte do corpo do e-mail
.checkConnection() : Object
verifica a conexão usando as informações armazenadas no objeto transportador
.connectionTimeOut : Integer
o tempo máximo de espera (em segundos) permitido para estabelecer uma conexão com o servidor
.headerCharset : Text
o conjunto de caracteres e a codificação usados para o cabeçalho de e-mail
.host : Text
o nome ou o endereço IP do servidor host
.keepAlive : Boolean
.logFile : Text
o caminho do arquivo de registro estendido definido (se houver) para a conexão de correio
.port : Integer
o número da porta utilizada para transações de email
.send( mail : Object ) : Object
envia o objeto mail para o servidor SMTP definido no objeto transporter e retorna um objeto de status
.sendTimeOut : Integer
o tempo máximo de espera (em segundos) de uma chamada para .send( ) antes que ocorra um timeout
.port : Integer
o número da porta utilizada para transações de email

4D.SMTPTransporter.new()

4D.SMTPTransporter.new( server : Object ) : 4D.SMTPTransporter

ParâmetroTipoDescrição
serverObject->Informação de servidor de correio
Resultados4D.SMTPTransporter<-Objeto SMTP Transporter

Descrição

A função 4D.SMTPTransporter.new() cria e retorna um novo objeto do tipo 4D.SMTPTransporter. É idêntico ao comando SMTP New transporter (atalho).

.acceptUnsecureConnection

História
ReleaseMudanças
17 R4Adicionado

.acceptUnsecureConnection : Boolean

Descrição

A propriedade .acceptUnsecureConnection contém True se o 4D tiver permissão para estabelecer uma conexão não criptografada quando a conexão criptografada não for possível.

Contém False se conexões cifradas não forem permitidas, neste caso um erro é retornado quando a conexão criptografada não for possível.

Estão disponíveis portos seguros:

  • SMTP

    • 465: SMTPS
    • 587 ou 25: SMTP com atualização STARTTLS se for compat[ivel com o servidor.
  • IMAP

    • 143: IMAP non-encrypted port
    • 993: IMAP com atualização STARTTLS se for compatível com o servidor
  • POP3

    • 110: Porta não criptografada POP3
    • 995: POP3 com atualização STARTTLS se suportado pelo servidor.

.authenticationMode

História
ReleaseMudanças
17 R4Adicionado

.authenticationMode : Text

Descrição

A propriedade .authenticationMode contém o modo de autenticação utilizado para abrir a sessão no servidor de correio.

Por padrão, o modo mais seguro suportado pelo servidor é usado.

Valores possíveis:

ValorConstantesComentário
CRAM-MD5SMTP authentication CRAM MD5Autenticação usando o protocolo CRAM-MD5
LOGINSMTP authentication loginAutenticação usando o protocolo LOGIN
OAUTH2SMTP authentication OAUTH2Autenticação usando o protocolo OAuth2
PLAINSMTP authentication plainAutenticação usando o protocolo PLAIN

.bodyCharset

História
ReleaseMudanças
18Suporte de UTF8 base64
17 R5Adicionado

.bodyCharset : Text

Descrição

A propriedade .bodyCharset contém o conjunto de caracteres e a codificação usados para a parte do corpo do e-mail.

Valores possíveis:

ParâmetrosValorComentário
mail mode ISO2022JPUS-ASCII_ISO-2022-JP_UTF8_QP
  • headerCharset: US-ASCII se possível, japonês (ISO-2022-JP) e Quoted-printable se possível, caso contrário, UTF-8 e Quoted-printable
  • bodyCharset: US-ASCII, se possível, japonês (ISO-2022-JP) e 7 bits, se possível, caso contrário, UTF-8 e Quoted-printable
mail mode ISO88591ISO-8859-1
  • headerCharset: ISO-8859-1 e Quoted-printable
  • bodyCharset: ISO-8859-1 e 8 bits
mail mode UTF8US-ASCII_UTF8_QPheaderCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & Quoted-printable (valor padrão)
modo de correio UTF8 na base64US-ASCII_UTF8_B64headerCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & base64

.checkConnection()

História
ReleaseMudanças
17 R4Adicionado

.checkConnection() : Object

ParâmetroTipoDescrição
ResultadosObject<-Estado da ligação do objecto transportador

Descrição

A função .checkConnection() verifica a conexão usando as informações armazenadas no objeto transportador, recria a conexão, se necessário, e retorna o estado. Esta função permite verificar se os valores fornecidos pelo utilizador são válidos e consistentes.

Objeto devolvido

A função envia um pedido para o servidor de correio e devolve um objecto descrevendo o estado do correio. Este objeto pode conter as seguintes propriedades:

PropriedadeTipoDescrição
successbooleanVerdadeiro se a verificação for bem sucedida, Falso de outra forma
statusnumber(apenas SMTP) Código de estado devolvido pelo servidor de correio (0 no caso de um problema não relacionado com o processamento de correio)
statusTexttextMensagem de estado devolvida pelo servidor de correio, ou último erro devolvido na pilha de erros 4D
errorscollectionpilha de erros 4D (não devolvida se for recebida uma resposta do servidor de correio)
[ ].errCodenumberCódigo de erro 4D
[ ].messagetextDescrição do erro 4D
[ ].componentSignaturetextAssinatura da componente interna que devolveu o erro

Para obter informações sobre os códigos de estado SMTP, consulte esta página.

Exemplo

 var $pw : Text
var $options : Object
var $transporter : 4D.SMTPTransporter
$options:=New object

$pw:=Request("Please enter your password:")
$options.host:="smtp.gmail.com"

$options.user:="test@gmail.com"
$options.password:=$pw

$transporter:=SMTP New transporter($options)

$status:=$transporter.checkConnection()
If($status.success=True)
ALERT("SMTP connection check successful!")
Else
ALERT("Error # "+String($status.status)+", "+$status.statusText)
End if

.connectionTimeOut

História
ReleaseMudanças
17 R5Adicionado

.connectionTimeOut : Integer

Descrição

A propriedade .connectionTimeOut contém o tempo máximo de espera (em segundos) permitido para estabelecer uma conexão com o servidor. Por padrão, se a propriedade não tiver sido definida no objeto do servidor (usado para criar o objeto do transportador com SMTP New transporter, POP3 New transporter ou IMAP New transporter), o valor será 30.

.headerCharset

História
ReleaseMudanças
17 R5Adicionado

.headerCharset : Text

Descrição

A propriedade .headerCharset contém o conjunto de caracteres e a codificação usados para o cabeçalho de e-mail. O cabeçalho inclui as seguintes partes do e-mail:

  • assunto,
  • nome(s) de arquivo anexo,
  • email name.

Valores possíveis:

ParâmetrosValorComentário
mail mode ISO2022JPUS-ASCII_ISO-2022-JP_UTF8_QP
  • headerCharset: US-ASCII se possível, japonês (ISO-2022-JP) e Quoted-printable se possível, caso contrário, UTF-8 e Quoted-printable
  • bodyCharset: US-ASCII, se possível, japonês (ISO-2022-JP) e 7 bits, se possível, caso contrário, UTF-8 e Quoted-printable
mail mode ISO88591ISO-8859-1
  • headerCharset: ISO-8859-1 e Quoted-printable
  • bodyCharset: ISO-8859-1 e 8 bits
mail mode UTF8US-ASCII_UTF8_QPheaderCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & Quoted-printable (valor padrão)
modo de correio UTF8 na base64US-ASCII_UTF8_B64headerCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & base64

.host

História
ReleaseMudanças
17 R5Adicionado

.host : Text

Descrição

A propriedade .host contém o nome ou o endereço IP do servidor host. Utilizado para transacções postais (SMTP, POP3, IMAP).

.keepAlive

História
ReleaseMudanças
17 R4Adicionado

.keepAlive : Boolean

Descrição

A propriedade .keepAlive contém Verdadeiro se a conexão SMTP deve ser mantida viva até que o objeto transportador seja destruído, e Falso caso contrário. Por padrão, se a propriedade keepAlive não tiver sido definida no objeto server (usado para criar o objeto transporter com SMTP New transporter), ela será True.

A coleção SMTP é automaticamente fechada:

  • quando o objeto transporter é destruído se a propriedade .keepAlive for true,
  • após cada execução da função .send( ) se a propriedade .keepAlive estiver definida como false.

.logFile

História
ReleaseMudanças
17 R5Adicionado

.logFile : Text

Descrição

A propriedade .logFile contém o caminho do arquivo de registro estendido definido (se houver) para a conexão de correio. Pode ser relativo (à pasta atual de Logs) ou absoluto.

Ao contrário dos arquivos de registo regulares (ativados através do comando SET DATABASE PARAMETER), os arquivos de registo armazenam o conteúdo MIME de todos os e-mails enviados e não têm qualquer limite de tamanho. Para mais informações sobre arquivos de registo estendidos, consultar:

.port

História
ReleaseMudanças
17 R4Adicionado

.port : Integer

Descrição

A propriedade .port contém o número da porta utilizada para transações de email. Por padrão, se a propriedade port não tiver sido definida no objeto server (usado para criar o objeto transportador com SMTP New transporter, POP3 New transporter, IMAP New transporter), a porta usada será:

  • SMTP - 587
  • POP3 - 995
  • IMAP - 993

.send()

História
ReleaseMudanças
17 R5Suporte de conteúdo Mime
17 R4Adicionado

.send( mail : Object ) : Object

ParâmetroTipoDescrição
mailObject->Email para enviar
ResultadosObject<-Status SMTP

Descrição

A função .send() envia o objeto mail para o servidor SMTP definido no objeto transporter e retorna um objeto de status.

O objeto transporter já deve ter sido criado com o comando SMTP New transporter.

O método cria a ligação SMTP se esta ainda não estiver viva. Se a propriedade .keepAlive do objeto transporter for false, a conexão SMTP será automaticamente fechada após a execução de .send(); caso contrário, ela permanecerá ativa até que o objeto transporter seja destruído. Para obter mais informações, consulte a descrição do comando SMTP New transporter.

Em mail, passe um objeto Email válido para enviar. As propriedades de origem (de onde vem o e-mail) e de destino (um ou mais destinatários) devem ser incluídas, as restantes propriedades são opcionais.

Objeto devolvido

A função devolve um objecto que descreve o estado SMTP da operação. Este objeto pode conter as seguintes propriedades:

PropriedadeTipoDescrição
successbooleanVerdadeiro se o envio for bem sucedido, False caso contrário
statusnumberCódigo de estado devolvido pelo servidor SMTP (0 no caso de um problema não relacionado com o processamento de correio)
statusTexttextMensagem de estado devolvida pelo servidor SMTP

No caso de um problema não relacionado ao processamento SMTP (por exemplo, uma propriedade obrigatória está faltando no e-mail), 4D gera um erro que pode ser interceptado usando um método instalado pelo comando ON ERR CALL. Use o comando Últimos Erros para obter informações sobre o erro.

Neste caso, o objecto de estatuto resultante contém os seguintes valores:

PropriedadeValor
successFalse
status0
statusText"Failed to send email"

.sendTimeOut

História
ReleaseMudanças
17 R4Adicionado

.sendTimeOut : Integer

Descrição

A propriedade .sendTimeOut contém o tempo máximo de espera (em segundos) de uma chamada para .send( ) antes que ocorra um timeout. Por padrão, se a propriedade .sendTimeOut não tiver sido definida no objecto server, é utilizado o valor 100.

.user

História
ReleaseMudanças
17 R4Adicionado

.user : Text

Descrição

A propriedade .user contém o nome de usuário usado para autenticação no servidor de email .