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âmetro | Tipo | Descrição | |
---|---|---|---|
server | Object | -> | Informação de servidor de correio |
Resultados | 4D.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
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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:
Valor | Constantes | Comentário |
---|---|---|
CRAM-MD5 | SMTP authentication CRAM MD5 | Autenticação usando o protocolo CRAM-MD5 |
LOGIN | SMTP authentication login | Autenticação usando o protocolo LOGIN |
OAUTH2 | SMTP authentication OAUTH2 | Autenticação usando o protocolo OAuth2 |
PLAIN | SMTP authentication plain | Autenticação usando o protocolo PLAIN |
.bodyCharset
História
Release | Mudanças |
---|---|
18 | Suporte de UTF8 base64 |
17 R5 | Adicionado |
.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âmetros | Valor | Comentário |
---|---|---|
mail mode ISO2022JP | US-ASCII_ISO-2022-JP_UTF8_QP |
|
mail mode ISO88591 | ISO-8859-1 |
|
mail mode UTF8 | US-ASCII_UTF8_QP | headerCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & Quoted-printable (valor padrão) |
modo de correio UTF8 na base64 | US-ASCII_UTF8_B64 | headerCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & base64 |
.checkConnection()
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.checkConnection() : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | Object | <- | 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:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | boolean | Verdadeiro se a verificação for bem sucedida, Falso de outra forma | |
status | number | (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) | |
statusText | text | Mensagem de estado devolvida pelo servidor de correio, ou último erro devolvido na pilha de erros 4D | |
errors | collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor de correio) | |
[ ].errCode | number | Código de erro 4D | |
[ ].message | text | Descrição do erro 4D | |
[ ].componentSignature | text | Assinatura 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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âmetros | Valor | Comentário |
---|---|---|
mail mode ISO2022JP | US-ASCII_ISO-2022-JP_UTF8_QP |
|
mail mode ISO88591 | ISO-8859-1 |
|
mail mode UTF8 | US-ASCII_UTF8_QP | headerCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & Quoted-printable (valor padrão) |
modo de correio UTF8 na base64 | US-ASCII_UTF8_B64 | headerCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & base64 |
.host
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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:
- Conexões SMSTP - 4DSMTPLog.txt
- Conexões POP3 - 4DPOP3Log.txt
- Conexões IMAP - 4DIMAPLog.txt
.port
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Suporte de conteúdo Mime |
17 R4 | Adicionado |
.send( mail : Object ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Object | -> | Email para enviar | |
Resultados | Object | <- | 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 comandoSMTP 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:
Propriedade | Tipo | Descrição |
---|---|---|
success | boolean | Verdadeiro se o envio for bem sucedido, False caso contrário |
status | number | Código de estado devolvido pelo servidor SMTP (0 no caso de um problema não relacionado com o processamento de correio) |
statusText | text | Mensagem 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:
Propriedade | Valor |
---|---|
success | False |
status | 0 |
statusText | "Failed to send email" |
.sendTimeOut
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.user : Text
Descrição
A propriedade .user
contém o nome de usuário usado para autenticação no servidor de email .