Saltar al contenido principal
Versión: 20 R7 BETA

SMTPTransporter

La clase SMTPTransporter permite configurar conexiones SMTP y enviar correos electrónicos a través de objetos SMTP transporter.

Objeto SMTP Transporter

Los objetos SMTP Transporter son instanciados con el comando SMTP New transporter. Ofrecen las siguientes propiedades y funciones:

.acceptUnsecureConnection : Boolean
True si se autoriza a 4D establecer una conexión no cifrada
.authenticationMode : Text
el modo de autenticación utilizado para abrir la sesión en el servidor de correo
.bodyCharset : Text
el conjunto de caracteres y la codificación utilizados para la parte del cuerpo del correo electrónico
.checkConnection() : Object
comprueba la conexión utilizando la información almacenada en el objeto transporter
.connectionTimeOut : Integer
el tiempo máximo de espera (en segundos) permitido para establecer una conexión con el servidor
.headerCharset : Text
el conjunto de caracteres y la codificación utilizados para el encabezado del correo electrónico
.host : Text
el nombre o la dirección IP del servidor local
.keepAlive : Boolean
True si la conexión SMTP debe permanecer activa hasta que el objeto transporter sea destruido
.logFile : Text
la ruta del archivo de registro extendido definido (si existe) para la conexión de correo
.port : Integer
el número de puerto utilizado para las transacciones de correo
.send( mail : Object ) : Object
envía el objeto mail al servidor SMTP definido en el objeto transporter y devuelve un objeto estado
.sendTimeOut : Integer
el tiempo máximo de espera (en segundos) de una llamada a .send( ) antes de que se produzca un timeout
.user : Text
el nombre de usuario utilizado para la autenticación en el servidor de correo

4D.SMTPTransporter.new()

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

ParámetrosTipoDescripción
serverObject->Información del servidor de correo
Result4D.SMTPTransporter<-Objeto SMTP Transporter

Descripción

La función 4D.SMTPTransporter.new() crea y devuelve un nuevo objeto del tipo 4D.SMTPTransporter. Es idéntico al comando SMTP New transporter (acceso directo).

.acceptUnsecureConnection

Historia
LanzamientoModificaciones
17 R4Añadidos

.acceptUnsecureConnection : Boolean

Descripción

La propiedad .acceptUnsecureConnection contiene True si se autoriza a 4D establecer una conexión no cifrada cuando la conexión cifrada no es posible.

Contiene False si no se permiten las conexiones no cifradas, en cuyo caso se devuelve un error cuando no es posible la conexión cifrada.

Los puertos seguros disponibles son:

  • SMTP

    • 465: SMTPS
    • 587 o 25: SMTP con actualización STARTTLS si lo soporta el servidor.
  • IMAP

    • 143: Puerto IMAP no encriptado
    • 993: IMAP con actualización STARTTLS si lo soporta el servidor
  • POP3

    • 110: Puerto POP3 no encriptado
    • 995: POP3 con actualización STARTTLS si lo soporta el servidor.

.authenticationMode

Historia
LanzamientoModificaciones
17 R4Añadidos

.authenticationMode : Text

Descripción

La propiedad .authenticationMode contiene el modo de autenticación utilizado para abrir la sesión en el servidor de correo.

Por defecto, se utiliza el modo más seguro soportado por el servidor.

Los valores posibles son:

ValorConstantesComentario
CRAM-MD5SMTP authentication CRAM MD5Autenticación utilizando el protocolo CRAM-MD5
LOGINSMTP authentication loginAutenticación utilizando el protocolo LOGIN
OAUTH2SMTP authentication OAUTH2Autenticación utilizando el protocolo OAuth2
PLAINSMTP authentication plainAutenticación utilizando el protocolo PLAIN

.bodyCharset

Historia
LanzamientoModificaciones
18Soporte de UTF8 base64
17 R5Añadidos

.bodyCharset : Text

Descripción

La propiedad .bodyCharset contiene el conjunto de caracteres y la codificación utilizados para la parte del cuerpo del correo electrónico.

Valores posibles:

ConstanteValorComentario
mail mode ISO2022JPUS-ASCII_ISO-2022-JP_UTF8_QP
  • headerCharset: US-ASCII si es posible, Japanese (ISO-2022-JP) &Quoted-printable si es posible, de lo contrario UTF-8 & Quoted-printable
  • bodyCharset: US-ASCII si es posible, Japanese (ISO-2022-JP) & 7-bit si es posible, de lo contrario 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 si es posible, en caso contrario UTF-8 & Quoted-printable (valor por defecto)
mail mode UTF8 in base64US-ASCII_UTF8_B64headerCharset & bodyCharset: US-ASCII si es posible, de lo contrario UTF-8 & base64

.checkConnection()

Historia
LanzamientoModificaciones
17 R4Añadidos

.checkConnection() : Object

ParámetrosTipoDescripción
ResultObject<-Estado de la conexión del objeto transportador

Descripción

La función .checkConnection() comprueba la conexión utilizando la información almacenada en el objeto transporter, recrea la conexión si es necesario y devuelve el estado. Esta función permite verificar que los valores proporcionados por el usuario son válidos y coherentes.

Objeto devuelto

La función envía una solicitud al servidor de correo y devuelve un objeto que describe el estado del correo. Este objeto puede contener las siguientes propiedades:

PropiedadTipoDescripción
successbooleanTrue si la verificación es exitosa, False en caso contrario
statusnumber(sólo SMTP) Código de estado devuelto por el servidor de correo (0 en caso de un problema no relacionado con el procesamiento del correo)
statusTexttextMensaje de estado devuelto por el servidor de correo, o último error devuelto en la pila de errores de 4D
errorscollectionPila de errores 4D (no se devuelve si se recibe una respuesta del servidor de correo)
[ ].errCodenumberCódigo de error 4D
[ ].messagetextDescripción del error 4D
[ ].componentSignaturetextFirma del componente interno que ha devuelto el error

Para obtener información sobre los códigos de estado SMTP, por favor consulte esta página.

Ejemplo

 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

Historia
LanzamientoModificaciones
17 R5Añadidos

.connectionTimeOut : Integer

Descripción

La propiedad .connectionTimeOut contiene el tiempo máximo de espera (en segundos) permitido para establecer una conexión con el servidor. Por defecto, si la propiedad no se ha definido en el objeto servidor (utilizado para crear el objeto transportador con SMTP New transporter, POP3 New transporter, o IMAP New transporter), el valor es 30.

.headerCharset

Historia
LanzamientoModificaciones
17 R5Añadidos

.headerCharset : Text

Descripción

La propiedad .headerCharset contiene el conjunto de caracteres y la codificación utilizados para el encabezado del correo electrónico. El encabezado incluye las siguientes partes del correo electrónico:

  • asunto,
  • attachment filename(s),
  • email name.

Valores posibles:

ConstanteValorComentario
mail mode ISO2022JPUS-ASCII_ISO-2022-JP_UTF8_QP
  • headerCharset: US-ASCII si es posible, Japanese (ISO-2022-JP) &Quoted-printable si es posible, de lo contrario UTF-8 & Quoted-printable
  • bodyCharset: US-ASCII si es posible, Japanese (ISO-2022-JP) & 7-bit si es posible, de lo contrario 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 si es posible, en caso contrario UTF-8 & Quoted-printable (valor por defecto)
mail mode UTF8 in base64US-ASCII_UTF8_B64headerCharset & bodyCharset: US-ASCII si es posible, de lo contrario UTF-8 & base64

.host

Historia
LanzamientoModificaciones
17 R5Añadidos

.host : Text

Descripción

La propiedad .host contiene el nombre o la dirección IP del servidor local. Se utiliza para las transacciones de correo (SMTP, POP3, IMAP).

.keepAlive

Historia
LanzamientoModificaciones
17 R4Añadidos

.keepAlive : Boolean

Descripción

La propiedad .keepAlive contiene True si la conexión SMTP debe permanecer activa hasta que el objeto transporter sea destruido, y False en caso contrario. Por defecto, si la propiedad keepAlive no se ha definido en el objeto server (utilizado para crear el objeto transporter con SMTP New transporter), es True.

La conexión SMTP se cierra automáticamente:

  • cuando el objeto transporter es destruido si la propiedad .keepAlive es true,
  • después de cada función .send( ) si la propiedad .keepAlive está en false.

.logFile

Historia
LanzamientoModificaciones
17 R5Añadidos

.logFile : Text

Descripción

La propiedad .logFile contiene la ruta del archivo de registro extendido definido (si existe) para la conexión de correo. Puede ser relativo (a la carpeta actual Logs) o absoluto.

A diferencia de los archivos log habituales (activados mediante el comando SET DATABASE PARAMETER), los archivos log extendidos almacenan el contenido MIME de todos los correos enviados y no tienen límite de tamaño. Para más información sobre los archivos de registro extendidos, consulte:

.port

Historia
LanzamientoModificaciones
17 R4Añadidos

.port : Integer

Descripción

La propiedad .port contiene el número de puerto utilizado para las transacciones de correo. Por defecto, si la propiedad port no se ha definido en el objeto server (utilizado para crear el objeto transportador con SMTP New transporter, POP3 New transporter, IMAP New transporter), el puerto utilizado es:

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

.send()

Historia
LanzamientoModificaciones
17 R5Soporte de contenidos Mime
17 R4Añadidos

.send( mail : Object ) : Object

ParámetrosTipoDescripción
mailObject->Email a enviar
ResultObject<-Estado SMTP

Descripción

La función .send() envía el objeto mail al servidor SMTP definido en el objeto transporter y devuelve un objeto estado.

El objeto transporter debe haber sido creado con el comando SMTP New transporter.

El método crea la conexión SMTP si no está ya activa. Si la propiedad .keepAlive del objeto transporter es false, la conexión SMTP se cierra automáticamente después de la ejecución de . end(), de lo contrario permanece viva hasta que el objeto transporter sea destruido. Para más información, consulte la descripción del comando SMTP New transporter.

En mail, pase un objeto Email válido para enviar. Las propiedades origen (de dónde viene el correo electrónico) y destino (uno o varios destinatarios) deben incluirse, el resto de propiedades son opcionales.

Objeto devuelto

La función devuelve un objeto que describe el estado SMTP de la operación. Este objeto puede contener las siguientes propiedades:

PropiedadTipoDescripción
successbooleanTrue si el envío tiene éxito, false en caso contrario
statusnumberCódigo de estado devuelto por el servidor SMTP (0 en caso de un problema no relacionado con el procesamiento del correo)
statusTexttextMensaje de estado devuelto por el servidor SMTP

En caso de un problema no relacionado con el procesamiento SMTP (por ejemplo, si falta una propiedad obligatoria en el correo), 4D genera un error que puede interceptar utilizando un método instalado por el comando ON ERR CALL. Use the Last errors command for information about the error.

En este caso, el objeto estado resultante contiene los siguientes valores:

PropiedadValor
successFalse
status0
statusText"Failed to send email"

.sendTimeOut

Historia
LanzamientoModificaciones
17 R4Añadidos

.sendTimeOut : Integer

Descripción

La propiedad .sendTimeOut contiene el tiempo máximo de espera (en segundos) de una llamada a .send( ) antes de que se produzca un timeout. Por defecto, si no se ha definido la propiedad .sendTimeOut en el objeto server, se utiliza el valor 100.

.user

Historia
LanzamientoModificaciones
17 R4Añadidos

.user : Text

Descripción

La propiedad .user contiene el nombre de usuario utilizado para la autenticación en el servidor de correo.