Una nueva forma de enviar correos

Traducido automáticamente de Deepl

Sabemos la importancia del envío de correos electrónicos y lo común que se ha vuelto esta tarea en las aplicaciones actuales. Por ejemplo, imagina que tienes una empresa y quieres enviar un correo electrónico atractivo basado en HTML con algunas imágenes o incluso un vídeo, y adjuntarle un archivo (porejemplo, una orden de compra o una factura). Y quieres hacer todo esto con unas pocas líneas de código. Un código que sea fácil de escribir y de entender. Pues bien, a partir de 4D v17 R4, el escenario anterior es ahora posible. Por eso hemos ampliado el conjunto de funcionalidades relacionadas con los correos electrónicos.

El comando SMTP New transporter le permite enviar un correo electrónico en tres sencillos pasos:

  • Cree su transportador SMTP
  • Cree su correo electrónico
  • Envíe su correo electrónico

HDI crear y enviar un correo electrónico

Crear un correo electrónico

Un correo electrónico es un objeto con un montón de propiedades descritas en la transporter.send() documentación. A continuación se muestra un ejemplo de cómo crear un correo electrónico con información como el autor, los destinatarios, el asunto, el cuerpo del mensaje y los archivos adjuntos.

Comencemos por especificar el autor del correo electrónico:

$email:=New object
$email .from:="noreply.mail@4d.com
»

A continuación, los destinatarios (utilizando diferentes sintaxis):

//Originating addresses
$email.to:="address1@mail.com,address2@mail.com"
// Carbon Copy
$email .cc:=New object("nombre"; "Stephen"; "correo electrónico"; "address3@mail.com")
// Blind Carbon Copy
$email .bcc:="address4@mail.com,address5@mail.com"

A continuación, añadamos un asunto:

$email.subject:="Hola mundo"

Y el cuerpo … Puedes especificar dos tipos, un texto:

$email.textBody:="Correo de prueba \N - Esto es sólo un correo de prueba \N - Por favor, ignórelo"

o HTML:

$email.htmlBody:="<html><body><h1>Correo de prueba </h1>Esto es sólo un correo de prueba <br /> Por favor, ignórelo</body></html>"

Puedes usar los dos a la vez o por separado. Si utiliza ambos, la visualización depende del correo electrónico del cliente que utilice el destinatario.

Por último, podemos añadir un archivo adjunto con el MAIL New attachment comando:

$email.attachments:=New collection(MAIL New attachment("c:\tmp\4d.png"))

crear un transportador SMTP

Ahora que tenemos nuestro correo electrónico, tenemos que enviarlo. Para ello, es necesario indicar qué servidor SMTP queremos utilizar con el comando SMTP New transporter comando:

$smtp:=New object
$smtp .host:="smtp.hostname"
$smtp .port:=25
$smtp .user:="Usuario"
$smtp .password:="Contraseña"
$smtpTransporter :=SMTP New transporter($smtp)

Enviar el correo electrónico

El último paso es el envío del correo electrónico:

$status:=$smtpTransporter.send($email )

Aquí está el correo electrónico de prueba recibido en su buzón:

Como puedes ver en los ejemplos anteriores, la creación y el envío de correos electrónicos se ha mejorado drásticamente y es muy fácil de usar. Hay mucha potencia oculta. Puedes probar fácilmente la configuración del transportador (credenciales de usuario, datos del servidor), los archivos adjuntos se pueden especificar como adjuntos o en línea (dentro del HTML), y mucho más. Esta es la primera de varias características en la tubería y vamos a liberar iterativamente más y más características con cada lanzamiento de R.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.