Skip to main content
Version: v19 R8 BETA

SMTPTransporter

The SMTPTransporter class allows you to configure SMTP connections and send emails through SMTP transporter objects.

Objecto SMTP Transporter

SMTP Transporter objects are instantiated with the SMTP New transporter command. Eles oferecem as propriedades abaixo e funções:

.acceptUnsecureConnection : Boolean    Verdadeiro se 4D for permitido estabelecer uma ligação não encriptada
.authenticationMode : Text    o modo de autenticação utilizado para abrir a sessão no servidor de correio
.bodyCharset : Text     o charset e a codificação utilizados para a parte do corpo do e-mail
.checkConnection() : Object     verifica a ligação utilizando a informação armazenada no objeto de transporte
.connectionTimeOut : Integer    o tempo máximo de espera (em segundos) permitido para estabelecer uma conexão com o servidor
.headerCharset : Text     o charset e a codificação utilizados para o cabeçalho do correio eletrônico
.host : Text    o nome ou o endereço IP do servidor anfitrião
.keepAlive : Boolean    True if the SMTP connection must be kept alive until the transporter object is destroyed
.logFile : Text    o caminho do arquivo de registo alargado definido (se existir) para a ligação de correio
.port : Integer     o número do porto utilizado para as transações postais
.send( mail : Object ) : Object    sends the mail object to the SMTP server defined in the transporter object and returns a status object
.sendTimeOut : Integer     o tempo máximo de espera (em segundos) de uma chamada para .send( ) antes de ocorrer um timeout
.user : Text     o nome de usuário utilizado para autenticação no servidor de correio

SMTP New transporter

Histórico
VersãoMudanças
v18Nova propriedade logFile
v17 R5Novas propriedades bodyCharset e headerCharset
v17 R4Adicionado

SMTP New transporter( server : Object ) : 4D.SMTPTransporter

ParâmetrosTipoDescrição
serverObjeto->Informação de servidor de correio
Resultados4D.SMTPTransporter<-SMTP transporter

Descrição

O comando SMTP New transporter configura uma nova ligação SMTP de acordo com o parametro server e retorna um novo objetoSMTP transporter. Summary -->sends the mail object to the SMTP server defined in the transporter object and returns a status object.

Este comando não abre qualquer ligação com o servidor SMTP. A ligação SMTP é efectivamente aberta quando a função .send() é executada.

A coleção SMTP é automaticamente fechada:

  • when the transporter object is destroyed if the keepAlive property is true (default),
  • after each .send( ) function execution if the keepAlive property is set to false.

No parâmetro server, passe um objeto contendo as propriedades abaixo:

serverValor padrão (se omitido)
.acceptUnsecureConnection : Boolean    Verdadeiro se 4D for permitido estabelecer uma ligação não encriptadaFalse
.accessTokenOAuth2: Texto
.accessTokenOAuth2: Objecto
Cadeia de texto ou objecto simbólico representando as credenciais de autorização do OAuth2. Usado apenas com OAUTH2 authenticationMode. Se accessTokenOAuth2 for utilizado mas authenticationMode for omitido, é utilizado o protocolo OAuth 2 (se permitido pelo servidor). Text string or token object representing OAuth2 authorization credentials.
nenhum
.authenticationMode : Text    o modo de autenticação utilizado para abrir a sessão no servidor de correioo modo de autenticação mais seguro disponível no servidor é usado
.bodyCharset : Text     o charset e a codificação utilizados para a parte do corpo do e-mailmail mode UTF8 (US-ASCII_UTF8_QP)
.connectionTimeOut : Integer    o tempo máximo de espera (em segundos) permitido para estabelecer uma conexão com o servidor30
.headerCharset : Text     o charset e a codificação utilizados para o cabeçalho do correio eletrônicomail mode UTF8 (US-ASCII_UTF8_QP)
.host : Text    o nome ou o endereço IP do servidor anfitriãoobrigatório
.keepAlive : Boolean    True if the SMTP connection must be kept alive until the transporter object is destroyedTrue
.logFile : Text    o caminho do arquivo de registo alargado definido (se existir) para a ligação de correionenhum
password: Text
senha de usuário para autenticação no servidor. Text string or token object representing OAuth2 authorization credentials.
nenhum
.port : Integer     o número do porto utilizado para as transações postais587
.sendTimeOut : Integer     o tempo máximo de espera (em segundos) de uma chamada para .send( ) antes de ocorrer um timeout100
.user : Text     o nome de usuário utilizado para autenticação no servidor de correionenhum

Resultados

A função devolve um objecto SMTP transporter. Todas as propriedades retornadas são apenas leitura.

Exemplo

 $server:=New object
$server.host:="smtp.gmail.com" //Mandatory
$server.port:=465
$server.user:="4D@gmail.com"
$server.password:="XXXX"
$server.logFile:="LogTest.txt" //Extended log to save in the Logs folder

var $transporter : 4D.SMTPTransporter
$transporter:=SMTP New transporter($server)

$email:=New object
$email.subject:="my first mail "
$email.from:="4d@gmail.com"
$email.to:="4d@4d.com;test@4d.com"
$email.textBody:="Hello World"
$email.htmlBody:="<h1>Hello World</h1><h4>'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...'</h4>\
<p>There are many variations of passages of Lorem Ipsum available."\
+"The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.</p>"

$status:=$transporter.send($email)
If(Not($status.success))
ALERT("An error occurred sending the mail: "+$status.message)
End if

4D.SMTPTransporter.new()

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

ParâmetrosTipoDescrição
serverObjeto->Informação de servidor de correio
Resultados4D.SMTPTransporter<-SMTP transporter

Descrição

A função 4D.SMTPTransporter.new() creates and returns a new object of the 4D.SMTPTransporter type. It is identical to the SMTP New transporter command (shortcut).

.acceptUnsecureConnection

Histórico
VersãoMudanças
v17 R4Adicionado

.acceptUnsecureConnection : Boolean

Descrição

A propriedade .acceptUnsecureConnection contém Verdadeiro se 4D for permitido estabelecer uma ligação não encriptada quando a ligação encriptada não é 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órico
VersãoMudanças
v17 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:

ValueConstantesComentá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órico
VersãoMudanças
v18Suporte de UTF8 base64
v17 R5Adicionado

.bodyCharset : Text

Descrição

A propriedade .bodyCharset contém o charset e a codificação utilizados para a parte do corpo do e-mail.

Valores possíveis:

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

.checkConnection()

Histórico
VersãoMudanças
v17 R4Adicionado

.checkConnection() : Object

ParâmetrosTipoDescrição
ResultadosObjeto<-Estado da ligação do objecto transportador

|

Descrição

A função .checkConnection() verifica a ligação utilizando a informação armazenada no objeto de transporte, recria a ligação, se necessário, e devolve 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. This object can contain the following properties:

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

For information about SMTP status codes, please refer to this page.

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
Else
ALERT("Error # "+String($status.status)+", "+$status.statusText)
End if

.connectionTimeOut

Histórico
VersãoMudanças
v17 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 objecto servidor (utilizado para criar o objecto transportador com SMTP Novo transportador, POP3 Novo transportador, ou IMAP Novo transportador), o valor é 30.

.headerCharset

Histórico
VersãoMudanças
v17 R5Adicionado

.headerCharset : Text

Descrição

A propriedade .headerCharset contém o charset e a codificação utilizados para o cabeçalho do correio eletrônico. O cabeçalho inclui as seguintes partes do e-mail:

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

Valores possíveis:

ConstanteValueComentário
mail mode ISO2022JPUS-ASCII_ISO-2022-JP_UTF8_QP
  • headerCharset: US-ASCII se for possível, japonês (ISO-2022-JP) & Quoted-printable se for possível, do contrário UTF-8 & Quoted-printable
  • bodyCharset: US-ASCII se possível, japonês (ISO-2022-JP) e 7 bits se for possível, do contrário UTF-8 & Quoted-printable
mail mode ISO88591ISO-8859-1
  • headerCharset: ISO-8859-1 & Quoted-printable
  • bodyCharset: ISO-8859-1 & 8-bit
mail mode UTF8US-ASCII_UTF8_QPtexto
modo de correio UTF8 na base64US-ASCII_UTF8_B64headerCharset & bodyCharset: US-ASCII se possível, senão UTF-8 & base64

.host

Histórico
VersãoMudanças
v17 R5Adicionado

.host : Text

Descrição

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

.keepAlive

Histórico
VersãoMudanças
v17 R4Adicionado

.keepAlive : Boolean

Descrição

A propriedade .keepAlive contém True if the SMTP connection must be kept alive until the transporter object is destroyed, e False caso contrário. By default, if the keepAlive property has not been set in the server object (used to create the transporter object with SMTP New transporter), it is True.

A coleção SMTP é automaticamente fechada:

  • when the transporter object is destroyed if the .keepAlive property is true,
  • after each .send( ) function execution if the .keepAlive property is set to false.

.logFile

Histórico
VersãoMudanças
v17 R5Adicionado

.logFile : Text

Descrição

A propriedade .logFile contém o caminho do arquivo de registo alargado definido (se existir) para a ligaçã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órico
VersãoMudanças
v17 R4Adicionado

.port : Integer

Descrição

A propriedade .port contém o número do porto utilizado para as transações postais. Por padrão, se a propriedade não tiver sido definida no objeto servidor (utilizado para criar o objecto transportador com SMTP Novo transportador, POP3 Novo transportador, ou IMAP Novo transportador), o valor é 30:

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

.send()

Histórico
VersãoMudanças
v17 R5Suporte de conteúdo Mime
v17 R4Adicionado

.send( mail : Object ) : Object

ParâmetrosTipoDescrição
mailObjeto->Email para enviar
ResultadosObjeto<-Status SMTP

Descrição

A função .send() sends the mail object to the SMTP server defined in the transporter object and returns a status object.

The transporter object must have already been created using the SMTP New transporter command.

The method creates the SMTP connection if it is not already alive. If the .keepAlive property of the transporter object is false, the SMTP connection is automatically closed after the execution of .send(), otherwise it stays alive until the transporter object is destroyed. For more information, please refer to the SMTP New transporter command description.

In mail, pass a valid Email object to send. The origination (where the email is coming from) and destination (one or more recipients) properties must be included, the remaining properties are optional.

Objeto devolvido

The function returns an object describing the SMTP status of the operation. This object can contain the following properties:

PropriedadeTipoDescrição
successbooleanTrue if the send is successful, False otherwise
statusnumberStatus code returned by the SMTP server (0 in case of an issue unrelated to the mail processing)
statusTexttextStatus message returned by the SMTP server

In case of an issue unrelated to the SMTP processing (e.g. a mandatory property is missing in mail), 4D generates an error that you can intercept using a method installed by the ON ERR CALL command. Use the GET LAST ERROR STACK command for information about the error.

In this case, the resulting status object contains the following values:

PropriedadeValue
successFalse
status0
statusText"Failed to send email"

.sendTimeOut

Histórico
VersãoMudanças
v17 R4Adicionado

.sendTimeOut : Integer

Descrição

A propriedade .sendTimeOut contém o tempo máximo de espera (em segundos) de uma chamada para .send( ) antes de ocorrer um timeout. .

.user

Histórico
VersãoMudanças
v17 R4Adicionado

.user : Text

Descrição

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