Saltar para o conteúdo principal
Versão: 20 R5 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
True if 4D is allowed to establish an unencrypted connection
.authenticationMode : Text
the authentication mode used to open the session on the mail server
.bodyCharset : Text
the charset and encoding used for the body part of the email
.checkConnection() : Object
checks the connection using information stored in the transporter object
.connectionTimeOut : Integer
the maximum wait time (in seconds) allowed to establish a connection to the server
.headerCharset : Text
the charset and encoding used for the email header
.host : Text
the name or the IP address of the host server
.keepAlive : Boolean
True if the SMTP connection must be kept alive until the transporter object is destroyed
.logFile : Text
the path of the extended log file defined (if any) for the mail connection
.port : Integer
the port number used for mail transactions
.send( mail : Object ) : Object
sends the mail object to the SMTP server defined in the transporter object and returns a status object
.sendTimeOut : Integer
the maximum wait time (in seconds) of a call to .send( ) before a timeout occurs
.user : Text
the user name used for authentication on the mail server

SMTP New transporter

História
ReleaseMudanças
18Nova propriedade logFile
17 R5Novas propriedades bodyCharset e headerCharset
17 R4Adicionado

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

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

Descrição

The SMTP New transporter command configures a new SMTP connection according to the server parameter and returns a new SMTP transporter object. O objecto transportador devolvido será então normalmente utilizado para enviar mensagens de correio electrónico.

Este comando não abre qualquer ligação com o servidor SMTP. The SMTP connection is actually opened when the .send() function is executed.

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.

In the server parameter, pass an object containing the following properties:

serverValor padrão (se omitido)
.acceptUnsecureConnection : Boolean
True if 4D is allowed to establish an unencrypted connection
False
.accessTokenOAuth2: Text
.accessTokenOAuth2: Object
Text string or token object representing OAuth2 authorization credentials. Used only with OAUTH2 authenticationMode. If accessTokenOAuth2 is used but authenticationMode is omitted, the OAuth 2 protocol is used (if allowed by the server). Not returned in SMTP transporter object.
nenhum
.authenticationMode : Text
the authentication mode used to open the session on the mail server
o modo de autenticação mais seguro disponível no servidor é usado
.bodyCharset : Text
the charset and encoding used for the body part of the email
mail mode UTF8 (US-ASCII_UTF8_QP)
.connectionTimeOut : Integer
the maximum wait time (in seconds) allowed to establish a connection to the server
30
.headerCharset : Text
the charset and encoding used for the email header
mail mode UTF8 (US-ASCII_UTF8_QP)
.host : Text
the name or the IP address of the host server
mandatory
.keepAlive : Boolean
True if the SMTP connection must be kept alive until the transporter object is destroyed
True
.logFile : Text
the path of the extended log file defined (if any) for the mail connection
nenhum
password : Text
User password for authentication on the server. Not returned in SMTP transporter object.
nenhum
.port : Integer
the port number used for mail transactions
587
.sendTimeOut : Integer
the maximum wait time (in seconds) of a call to .send( ) before a timeout occurs
100
.user : Text
the user name used for authentication on the mail server
nenhum

Resultados

The function returns a SMTP transporter object. All returned properties are read-only.

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âmetroTipoDescrição
serverObject->Informação de servidor de correio
Resultados4D.SMTPTransporter<-SMTP transporter object

Descrição

The 4D.SMTPTransporter.new() function creates and returns a new object of the 4D.SMTPTransporter type. It is identical to the SMTP New transporter command (shortcut).

.acceptUnsecureConnection

História
ReleaseMudanças
17 R4Adicionado

.acceptUnsecureConnection : Boolean

Descrição

The .acceptUnsecureConnection property contains True if 4D is allowed to establish an unencrypted connection when encrypted connection is not possible.

It contains False if unencrypted connections are unallowed, in which case an error in returned when encrypted connection is not possible.

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

The .authenticationMode property contains the authentication mode used to open the session on the mail server.

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

The .bodyCharset property contains the charset and encoding used for the body part of the email.

Valores possíveis:

ParâmetrosValorComentário
mail mode ISO2022JPUS-ASCII_ISO-2022-JP_UTF8_QP
  • headerCharset: US-ASCII if possible, Japanese (ISO-2022-JP) & Quoted-printable if possible, otherwise UTF-8 & Quoted-printable
  • bodyCharset: US-ASCII if possible, Japanese (ISO-2022-JP) & 7-bit if possible, otherwise 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 if possible, otherwise UTF-8 & Quoted-printable (default value)
modo de correio UTF8 na base64US-ASCII_UTF8_B64headerCharset & bodyCharset: US-ASCII if possible, otherwise 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

The .checkConnection() function checks the connection using information stored in the transporter object, recreates the connection if necessary, and returns the status. 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

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

.connectionTimeOut

História
ReleaseMudanças
17 R5Adicionado

.connectionTimeOut : Integer

Descrição

The .connectionTimeOut property contains the maximum wait time (in seconds) allowed to establish a connection to the server. By default, if the property has not been set in the server object (used to create the transporter object with SMTP New transporter, POP3 New transporter, or IMAP New transporter), the value is 30.

.headerCharset

História
ReleaseMudanças
17 R5Adicionado

.headerCharset : Text

Descrição

The .headerCharset property contains the charset and encoding used for the email header. 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 if possible, Japanese (ISO-2022-JP) & Quoted-printable if possible, otherwise UTF-8 & Quoted-printable
  • bodyCharset: US-ASCII if possible, Japanese (ISO-2022-JP) & 7-bit if possible, otherwise 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 if possible, otherwise UTF-8 & Quoted-printable (default value)
modo de correio UTF8 na base64US-ASCII_UTF8_B64headerCharset & bodyCharset: US-ASCII if possible, otherwise UTF-8 & base64

.host

História
ReleaseMudanças
17 R5Adicionado

.host : Text

Descrição

The .host property contains the name or the IP address of the host server. Utilizado para transacções postais (SMTP, POP3, IMAP).

.keepAlive

História
ReleaseMudanças
17 R4Adicionado

.keepAlive : Boolean

Descrição

The .keepAlive property contains True if the SMTP connection must be kept alive until the transporter object is destroyed, and False otherwise. 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ória
ReleaseMudanças
17 R5Adicionado

.logFile : Text

Descrição

The .logFile property contains the path of the extended log file defined (if any) for the mail connection. Pode ser relativo (à pasta atual de Logs) ou absoluto.

Unlike regular log files (enabled via the SET DATABASE PARAMETER command), extended log files store MIME contents of all sent mails and do not have any size limit. Para mais informações sobre arquivos de registo estendidos, consultar:

.port

História
ReleaseMudanças
17 R4Adicionado

.port : Integer

Descrição

The .port property contains the port number used for mail transactions. By default, if the port property has not been set in the server object (used to create the transporter object with SMTP New transporter, POP3 New transporter, IMAP New transporter), the port used is:

  • 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 to send
ResultadosObject<-Status SMTP

Descrição

The .send() function 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.

O método cria a ligação SMTP se esta ainda não estiver viva. 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. 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

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.

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

The .sendTimeOut property contains the maximum wait time (in seconds) of a call to .send( ) before a timeout occurs. By default, if the .sendTimeOut property has not been set in the server object, the value 100 is used.

.user

História
ReleaseMudanças
17 R4Adicionado

.user : Text

Descrição

The .user property contains the user name used for authentication on the mail server.