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 |
.port : Integer the port number used for mail transactions |
SMTP New transporter
História
Release | Mudanças |
---|---|
18 | Nova propriedade logFile |
17 R5 | Novas propriedades bodyCharset e headerCharset |
17 R4 | Adicionado |
SMTP New transporter( server : Object ) : 4D.SMTPTransporter
Parâmetro | Tipo | Descrição | |
---|---|---|---|
server | Object | -> | Informação de servidor de correio |
Resultados | 4D.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:
In the server parameter, pass an object containing the following properties:
server | Valor 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. Usado somente com 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 |
.port : Integer the port number used for mail transactions | nenhum |
Resultados
A função retorna um objeto 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âmetro | Tipo | Descrição | |
---|---|---|---|
server | Object | -> | Informação de servidor de correio |
Resultados | 4D.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
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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:
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
The .bodyCharset
property contains the charset and encoding used for the body part of the email.
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 if possible, otherwise UTF-8 & Quoted-printable (default value) |
modo de correio UTF8 na base64 | US-ASCII_UTF8_B64 | headerCharset & bodyCharset: US-ASCII if possible, otherwise 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
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:
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 |
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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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â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 if possible, otherwise UTF-8 & Quoted-printable (default value) |
modo de correio UTF8 na base64 | US-ASCII_UTF8_B64 | headerCharset & bodyCharset: US-ASCII if possible, otherwise UTF-8 & base64 |
.host
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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:
- quando o objeto
transporter
é destruído se a propriedade.keepAlive
for true, - after each
.send( )
function execution if the.keepAlive
property is set to false.
.logFile
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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:
- SMTP connections - 4DSMTPLog.txt
- POP3 connections - 4DPOP3Log.txt
- IMAP connections - 4DIMAPLog.txt
.port
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Suporte de conteúdo Mime |
17 R4 | Adicionado |
.send( mail : Object ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Object | -> | Email to send | |
Resultados | Object | <- | 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 theSMTP 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:
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 |
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:
Propriedade | Valor |
---|---|
success | False |
status | 0 |
statusText | "Failed to send email" |
.sendTimeOut
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.user : Text
Descrição
The .user
property contains the user name used for authentication on the mail server.