Envío de recordatorios por correo electrónico

 

Para habilitar el envío de recordatorios de vencimiento de préstamos por correo electrónico haga lo siguiente:

  1. Edite el archivo abcd.def (Menú catalogación -> Administración -> Configuracion ABCD -> abcd.def) y active el parámetro EMAIL

  2. Edite el archivo correo.ini (Menú catalogación -> Administración -> Configuracion ABCD -> correo.ini) y coloque los parámetros para acceso al servidor de correo electrónico

  3. Vaya al módulo de préstamos, seleccione la opción Reportes. En la lista de reportes presentados para la base de datos trans seleccione el reporte que va a utilizar para enviar los correos y haga clic sobre editar. Ubique la casilla identificada como Nombre de la PFT para presentar los registros y haga clic sobre editar. Agregue al formato la sentencia:

     '<input type=checkbox name=chk_p value='f(mfn,1,0)'> ' 
    

a fin de habilitar la casilla que le permitirá seleccionar los destinatarios del correo electrónico. Un ejemplo del formato podría ser el siguiente:

 v10'|'
 v12'|'
 v15'|'
 v20'|'
 '<input type=checkbox name=chk_p value='f(mfn,1,0)'> ',ref(['users']l(['users']'CO_'v20),v30) '|'
 v70'|'
 v30*6.2,'-',v30*4.2,'-',v30.4,'|'
 v40*6.2,'-',v40*4.2,'-',v40.4,'|'
 v80'|'
 mhl,v100'|',mpl/

Este formato presentará los reportes de préstamo con el siguiente despliegue:

Email prestamo.png

El texto del correo electrónico se encuentra detallado en el formato mail_dev.pft localizado en los pfts de la base de datos trans. Este formato debe tener las siguientes especificaciones:

   ref(['users']l(['users']'CO_'v20),v160'|'v30, ) '$$$<p>
   Le informamos que debe pasar por la biblioteca a devolver el siguiente material: <p>'
   v100,'<br>'
   'Fecha de Préstamo: ',v30*6.2,'-',v30*4.2,'-',v30.4,'<br>',
   'Fecha de Devolución: ',v40*6.2,'-',v40*4.2,'-',v40.4,'<p>'
   /
De la primera línea se extrae el correo electrónico (v160) y el nombre del destinatario (v30). Como este reporte se emite desde la base de datos de transacciones se usa la función ref para obtener estos valores a partir del código de usuario almacenado en la base de datos trans (v20). Del registro del usuario obtenemos el correo y el nombre. Estas varibles deben estar en el orden que se especifica (correo nombre), separadas por ** . La cadena **$$$ también es obligatoria ya que guía al script en la recuperación de los datos de envío.

El texto y variables que se coloquen luego del $$$ corresponde al texto el correo y se forma de acuerdo a la conveniencia del centro o biblioteca usuaria. Todo el formato termina con / a efectos de la separación de los registros.

correo.ini

  • En la carpeta bases donde están localizadas las bases de datos bibliográfica, usuarios, transacciones, etc, coloque el archivo correo.ini con los siguientes parámetros:

Parámetro

Significado

HOST

URL del servidor de correos
Ejm: smtp.gmail.com

PORT

Puerto del servidor de correos
Ejm: 465

USERNAME

Usuario autorizado en el servidor de correos
Ejm: xx@gmail.com

PASSWORD

Clave de acceso del usuario autorizado en el servidor de correos
Ejm: xxx1234

FROM

Correo electrónico de la figura que envía el correo
Ejm: xx.net@gmail.com

FROMNAME

Nombre de la figura que envía el correo
Ejm: Biblioteca

SUBJECT

Asunto del correo
Ejm: Estado de cuenta

TEST

Dirección de correo al cual se envirán los correos para la prueba del envío. Si este parámetro está presenta no se tomará en cuenta la dirección del destinatario sino que todos los correos se enviarán a la dirección especificada en este parámetro. Cuando desee enviar los correos a la direccion real del destinatario inhiba este parámetro, por ejemplo, colocándole una X antes del nombre (XTEST)
Ejm

PHPMAILER

Si el correo está configurado directamente en PHP puede inhibir este parámetro o colocarle el valor PHP; de otro modo coloque el valor phpmailer para indicar que se va a utilizar una clase denominada PHPMAILER para el envío del correo

Ejemplo del archivo correo.ini

HOST=smtp.gmail.com
PORT=465
USERNAME=xx@gmail.com
PASSWORD=xx
FROM=xx.net@gmail.com        
FROMNAME=xx
SUBJECT=Estado de cuenta
TEST=xx@gmail.com
PHPMAILER=phpmailer

La forma más sencilla de enviar un correo sin enfrentar los problemas de configuración locales es utilizar un cuenta de correos de GMAIL. Para ello cree una cuenta en Gmail y vaya a Mi cuenta -> Acceso y seguridad -> Aplicaciones y sitios conectados -> Opción Permitir el acceso de aplicaciones menos seguras: ACTIVADA (My Account -> Sign-in & security -> Connected apps & sites -> Allow less secure apps: ON). Cambie los valores USERNAME, PASSWORD, FROM, FROMNAME por la cuenta de google que vaya a utilizar y en le parámetro TEST coloque la dirección de correos que va a utilizar para recibir la prueba de los correos generados.


Colocar un vínculo para envío de correo

Para enviar un correo electrónico a la persona cuyo registro se muestra en la ventana de catalogación se debe incluir en el formato de presentación un vínculo JavaScript que abra una ventana nueva, invoque el script ../output_circulation/correos.php y le pase los parametros necesarios para el envío del correo

El comando JavaScript para abrir una nueva ventana es [window.open] y en líneas generales tiene la siguiente sintaxis:

    window.open(URL,name,specs)
    URL  =Recurso a invocar
    name =Nombre de la ventana
    specs=Especificaciones de formato de la ventana

En nuestro caso el URL corresponde la script que va a invocarse para envío del correo, el cual se encuentra alojado en la carpeta output_circulation bajo el nombre correos.php y debe recibir los siguientes parámetros:

    base       Nombre de la base de datos de la cual se van a obtener los datos de la persona
               (se puede obtener en el lenguaje de formatos mediante el comando mstname
    ini        nombre del archivo .ini con las especificaciones del servidor de correos a utilizar
               (ver configuración servidor de correos)
    contactos  Mfn del registro para el cual se va a emitir el correo
    pft        Nombre del formato a utilizar para generar el cuerpo del correo (sin la extensión .pft). 
               Este formato debe incluirse en el archivo .par de la base de datos correspondiente.

Entonces, si

    base       = correspondencia
    contactos  = 5
    pft        = mail
    ini        = correspondencia.ini, localizado en la carpeta /bases/

el url quedaría de la siguiente manera:

    ../output_circulation.php?base=correspondencia&contactos=5&pft=mail&ini=correspondencia.ini

cuya expresión en el formato es:

    `<a href=javascript:msgwin=window.open('../output_circulation/correos.php?
      base=`mstname`&ini=correspondencia.ini&contactos=`f(mfn,1,0),`&pft=mail',
      ,'width=800; height=400');msgwin.focus()" target=_blank>Enviar Correo</a>`/

Note el uso de los tres tipos de comillas: ` para combinar correctamente la expresión de javascript con la expresión del lenguaje de formatos.

El cuerpo del mensaje, identificado en el parámetro &pft= del URL debe estar construído con las siguientes características:

vxxx’ ‘vyyy’$$$ Cuerpo del mensaje. No debe contener separadores para salto de línea (/ ó #). Los saltos de línea deben indicarse utilizando las etiquetas HTML
y <P> …… /

El final del formato se indica utilizando el salto de línea condicional (/) del lenguage de formatos de CISIS

Ejemplo:

v135,’ ‘v110,’$$$

Texto del correo ….

Anexo:

<a href=http://localhost:9090/bases/correspondencia/'v80^b' target=_blank>,'v80^a'</a>' /

En este ejemplo en el correo se incluye un vínculo hacia un documento.