Enviar un Correo electronico desde uno script Nios4 - Profundización


 

Uno de los últimos objetos programables insertados en el lenguaje de Nios4 permite enviar correos electrónicos.

En este ejemplo, enviaremos un correo electrónico de cortesía con la copia del pedido realizado a nuestro cliente. El script se insertará en el post guardado de este último.

Comprobar si el correo debe ser enviado o no

if dataview.getvalue("estado_orden") != "Confirmado" or dataview.getvalue("correo_enviado") == 1 or dataview.getvalue("email") == "" then
   do return end
end


En primer lugar, comprobamos si el correo electrónico se envía o no. Las condiciones deben ser que el estado del pedido debe ser confirmado, que nunca se ha enviado un correo electrónico y que la dirección de correo electrónico debe ser rellenada. Si una de estas condiciones es falsa, entonces no procederemos al envío.

 

Creación del documento y del cuerpo del correo electrónico a enviar

impresion_orden  = dataview.createdocument("GGUID IMPRESION ORDEN")
cuerpo_correo     = dataview.createdocument("GGUID IMPRESION CORREO ORDEN")

En este paso crearemos la impresión del pedido que se enviará mediante el comando createdocument. El gguid de la impresión es recuperable dentro del editor en Windows.

La segunda impresión creará el cuerpo html para usar en el correo. Esta es una impresión completa, pero optimizada para ser utilizada como texto de correo electrónico. El potencial está en el hecho de poder crear un correo electrónico cualitativa y gráficamente mejor que muestra los datos del pedido.

También es posible no crear cuerpos html para el correo electrónico, sino insertar un texto simple.

Envío del correo

email              = program.newemail()
email.username     = "username"
email.password     = "password"
email.smtpserver   = "smtp.server"
email.portserver   = 587
email.enablessl    = true 
email.subject      = "Copia de cortesia orden n " .. dataview.getvalue("numero_orden"
--email.body       = "Cuerpo del correo estandard"
email.bodydocument = cuerpo_correo 
email.sendfrom     = "help@d-one.info"
email.sendto       = dataview.getvalue("email")
email.adddocument(impresion_orden) 
--email.addcc("posibles mail cc aggiuntive")
--email.addcc("possibili mail cc aggiuntive"
valore = email.send()



El primer bloque crea el asunto de correo electrónico y establece los parámetros de conexión al servidor smtp. Estos datos son necesarios para poder enviar el correo electrónico y varían de servidor a servidor. También puede ser necesario configurar el servidor para recibir solicitudes de correo de aplicaciones desconocidas, como Gmail.

Configuramos el subdominio del email y enganchamos el cuerpo email previamente creado. Configuramos nuestro correo electrónico para identificar quién lo envía (sendfrom) y recuperamos el correo electrónico presente en el pedido (sendto)

Adjuntamos la impresión real del pedido y enviamos el correo electrónico.

Último paso

if valore == true then
   dataview.setvalue("correo_enviado",1)
   database.setsql("UPDATE ordenes SET correo_enviado = 1 WHERE gguid='" .. dataview.getvalue("gguid") .. "'"
else
  output.print(correo.messageerror)
end

Si el valor es el mismo, significa que el correo electrónico se ha enviado correctamente. Por eso modificamos el valor del campo mail_enviado tanto en la ficha como en la base de datos para bloquear la posibilidad de enviar de nuevo el mismo correo.

 

 

 

 

 

 

 

Comentarios