Software Developement



Documentos relacionados
Desarrollo Web con PHP

MANUAL DE USUARIO DE CUENTAS DE CORREO

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

DISPOSITIVO DE BANDA ANCHA

MANUAL DE ACCESO A TU CUENTA DE CLARO A TRAVES DE LA WEB

Introducción a la Firma Electrónica en MIDAS

IT Complements Naucalpan México. Todos los derechos Reservados 2010 IT Complements

Introducción a las redes de Computadoras Capítulo 2 Clase 2

Manual Operativo Sistema de Postulación Online

Manual para el uso del Correo Electrónico Institucional Via Webmail

Manual del Protocolo XML-RPC de Mensajería Negocios

Modo básico de funcionamiento del módulo Velneo vmodapache V7

MANUAL DE CS-ALMACENES

Correo Electrónico: Webmail: Horde 3.1.1

Acceder a correo de 1000tentaciones.com a través de web.

Manual hosting acens

REGISTRO DE DOMINIOS CONECTIVIDAD ADSL HOSTING COMPARTIDO RED CORPORATIVA VPN SOPORTE TECNICO PROFESIONAL

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

ESPECIFICACIONES TÉCNICAS DEL SERVICIO EDI-SEDEB2B y PROCEDIMIENTO DE HOMOLOGACION

MANUAL MS OUTLOOK EXPRESS

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Este programa se encuentra en el paquete Microsoft Explorer 5.0 y se instala al mismo tiempo que el navegador Microsoft Explorer.

Instalación y configuración de SharePoint (SPS) 2003

Organizándose con Microsoft Outlook

TEMA: EL CORREO ELECTRONICO

MANUAL DE USUARIO Mensa-Red Empresas (OUTLOOK 2002, 2003 y XP)

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

Manual de Administración de Correo Electrónico

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

El correo electrónico o es el servicio más utilizado de Internet, junto con la Web. Hay varios tipos de cuentas, POP, IMAP y SMTP.

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

VetterMail Versión

Almacenamiento de CFD de Proveedores

Ayuda básica relativa al interfaz web

Acronis License Server. Guía del usuario

NOTAS TÉCNICAS SOBRE EL SIT: Comunicados (II)

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Cómo configurar Microsoft Outlook

Manual uso cuentas WebMail con Thunderbird

sdfsdf SERVIDOR SMS Manual de usuario Servidor SMS Nexo Versión 1.02

Unicenter Service Desk r11.1. Guía para el Usuario Final de Service Desk

Cuadernillo de Autoaprendizaje Correo Electrónico Microsoft Outlook Express

MANUAL TÉCNICO WEB SERVICE PROTOCOLO SOAP

Tabla de contenido. 1. Objetivo Asignación de responsabilidades Alcance Procedimientos relacionados...4

Especificaciones de la Interfaz para envío de SMS

MANUAL WEBSOPORTE DE IRIS-EKAMAT

COB Versión 1.20 Manual del usuario

MANUAL DE USUARIO DE CUENTAS DE CORREO

Internet Information Server

Códigos de error SMTP

El IETF (Internet Ingineering Task Force, Equipo de Trabajo de Ingeniería de Internet)

Servicio Webmail. La fibra no tiene competencia

Internet como herramientas de comunicación: El correo electrónico

Guía de acceso a Meff por Terminal Server

Manual CMS Mobincube

Manual de Mozilla Thunderbird

Manual de uso de correo por webmail

Evolution. Para abrir Evolution en GNOME, seleccione: Main Menu => Applicaciones => Internet => Evolution Mail

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

INSTALACIÓN DE SIESTTA 2.0 EN UN HOSTING (Ejemplo para Guebs.com)

Guí a Ra pida Dropbox.

Pasar del correo en IMAP o Webmail con el servicio de correo de Generanet S.L. al servicio de correo de propio con soporte técnico con ValdeSoftware

APÉNDICE E: MANUAL DE USUARIO PARA EL SISTEMA DE MONITOREO DE REDES LAN.

MS Outlook: Guía de Configuración

Manual Instalación de certificados digitales en Outlook 2000

SUPERINTENDENCIA DE INDUSTRIA Y COMERCIO DELEGATURA DE PROPIEDAD INDUSTRIAL DIVISIÓN DE SIGNOS DISTINTIVOS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Versión 2014 TIMBRADO DE LA NOMINA

CUALQUIERA, NO ES NECESARIO DISPONER DE ADSL

Soluciones Informáticas para la Gestión de la Calidad c/vicente Aleixandre nº 10 4º H, A CORUÑA Telf: / info@spuch.

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

MANUAL DE ACTUALIZACIÓN DEL DEA. Versión del DEA del 10/04/2012

Manual del Usuario Inscripción de Proyectos al Fondo de Fomento Formulario On-line

CORREO DE PERSONAL THUNDERBIRD POP3

Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014

MANUAL DE USUARIO DESKTOP

LiLa Portal Guía para profesores

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

Una vez más no olvide los términos y políticas de prestación de estos servicios, son de suma importancia para usted y su empresa.


GVisualPDA Módulo de Almacén

SendMail. delaf.sytes.net. Instalación y envio de s L A TEX. 28 may Universidad Nacional Andrés Bello

Manual LiveBox WEB ADMIN.

MANUAL DE USUARIO. RECEPCIÓN DE CFDIs AZENTA

Manual de utilización del correo electrónico.

Manual sobre el Sistema de Oportunidades Laborales para Organizaciones

GUÍA DE USUARIO DEL CORREO


Comisión Nacional de Bancos y Seguros

3. Número inicial y número final de mensajes mostrados en la página actual.

GUÍA BÁSICA USUARIO MOODLE 2.6

FSx-Connector Guía rápida del Módulo pcron (Tareas Programadas) Créditos

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Curso PHP Módulo 1 R-Luis

Transcripción:

AnesGy Software Developement Clase AnesGyMail (PHP) Página 1 de 8

Descripción de la clase La utilidad de esta clase está en el envío de correos electrónicos desde PHP vía un servidor SMTP. También funciona a través de la función MAIL de PHP, pero, dado que esta depende del servidor SMTP configurado y tiene ciertas limitaciones, consideramos más útil su uso a través de SMTP 1. En este pequeño manual de uso se explica cómo utilizar la clase (no se explica como funciona ya que habría que explicar todo el protocolo SMTP). Log de cambios Versión 1.3: Build 5: esta es la versión a la que corresponde este manual. o Se depuran los códigos. o Se añade el manual. o Mejorado el sistema alternativo de MIME 2 (la función que se encarga de ello está depreciada y el sustituto es una extensión de PECL). Build 4: o Arreglado el fallo al enviar el correo en modo texto. Error reportado por ramon. Build 3: o Arreglado el problema de compatibilidad con PHP < 5.1 con la variable $_SERVER["REQUEST_TIME"]. Error reportado por ramon. Build 2: o Arreglado problema de compatibilidad con el nombre de los archivos adjuntos. o Arreglado fallo en el codificador de los header. o Se prueba a ocultar la etiqueta BCC para mayor seguridad. Build 1: o Mejorada la estandarización de los header. o Añadida capacidad de enviar correos con CC (Carbon Copy) y/o BCC (Blind Carbon Copy). Sugerencia de ramon. o Arreglados problemas con los headers. Versión 1.2: Build 1: 1 Siendo SMTP el servidor que proporciona un correo electrónico (como Hotmail, Gmail o Yahoo!) para poder enviar correos desde un programa de correo electrónico como Thunderbird o Outlook, o, en este caso, AnesGyMail. 2 MIME es el nombre que recibe el tipo de archivo. En principio la extensión del archivo debe darnos este dato, pero es obligatorio especificarlo al enviar un correo (ya que si no el servidor no sabe si es algo que se pueda imprimir por pantalla o es un adjunto que hay que forzar la descarga). Página 2 de 8

o Añadida compatibilidad con versiones de PHP sin la función mime_type_content. Incompatibilidad encontrada por ramon. Versión 1.1: Build 3: o Añadida compatibilidad con versiones de PHP anteriores a 5.3 con un sustituto de la función quoted_printable_encode. Build 2: o Modificado el sistema de adjuntos y de codificación. o Mejorada la compatibilidad y la estructura de correos complejos (doble versión si se envía como HTML, una en texto y otra en HTML, por si el servidor no entiende el formato). Build 1: o Añadida la capacidad de añadir archivos adjuntos. Versión 1.0: Build 1: o Primera versión con capacidad para enviar correos en HTML y en texto plano según los protocolos SMTP y la función MAIL de PHP. Instalación de la clase En el archivo comprimido ZIP que contiene a la clase se encuentran 4 archivos: AnesGyMail.php: este archivo es el contenedor de la clase. ejemplo.php: este archivo contiene un ejemplo de su uso. icon2.gif: este archivo es para el ejemplo, en el cual será adjuntado. mime.agl: este archivo contiene la base de datos alternativa con los MIME. De estos cuatro sólo es obligatorio que suba a su sitio 2: AnesGyMail.php y mime.agl. Los otros dos son archivos de ejemplo. En el código donde se quiera utilizar la clase se ha de incluir (con la función require o include o algúna función mágica 3 ) el archivo PHP (AnesGyMail.php) que contiene la clase. 3 La función mágica en este caso sería autoload y tendría el siguiente códgio: function autoload( $class_name ) { require_once 'ruta/a/las/clases/'. $class_name.'.php'; } Esta función solo es válida si las clases están alojadas en archivos PHP separados que tienen cada uno el nombre de la clase. Si se ha programado en Java (o se sigue la tradición de programación) esto se hará automáticamente. Página 3 de 8

Servidores compatibles AMailer ha sido probado con los siguientes servidores: Servidor GMail Yahoo! Hotmail Datos Servidor: ssl://smtp.gmail.com Puerto: 465 Autorización: true Usuario y Contraseña: necesarios y sin codificar. Servidor: ssl://smtp.correo.yahoo.es Puerto: 465 Autorización: true Usuario y Contraseña: necesarios y sin codificar. Servidor: smtp.live.com Puerto: 25 Autorización: true Usuario y Contraseña: necesarios y sin codificar. De todos modos, AMailer sigue los estándares de SMTP y, por tanto, es muy probable que funcione con cualquier servidor SMTP que siga los estándares. Uso de la clase Llamada a la clase Para llamar a la clase hay que usar la siguietne sentencia: $objeto = new AnesGyMailer ( MODE, PARAMS ); Siendo los parámetros los siguientes: MODE: este es el protocolo que se usará en el envío del correo. Las opciones posibles son "SMTP" y "MAIL". Si no se especifica ninguna, "MAIL" se sobreentenderá. PARAMS: si se carga el protocolo de SMTP, se ha de incluir un array con los datos del servidor. Para SMTP los parámetros deben ser: array ( "host" => "DIRECCIÓN DEL SERVIDOR", "port" => "PUERTO DEL SERVIDOR", "auth" => true, "user" => "NOMBRE DE USUARIO", "pass" => "CONTRASEÑA DE LA CUENTA" ); Siendo host la dirección del servidor de SMTP, port el puerto para la conexión SMTP, auth debe ser true si se requiere autentificación (lo cual es extremadamente común), user y pass son el nombre de usuario y la contraseña, ambas sin codificar. Página 4 de 8

Lista de propiedades de la clase Sea $object la variable a la cual se le ha asignado la clase: $object-> error: valdrá falso si no ha sucedido ningún error, y una pequeña cadena de texto si hay un fallo. De por sí esta cadena no es muy informativa, por lo que, para más información se debe comprobar el registro de la conexión con $object-> MSSG. $object-> MSSG: este es el registro de la conexión. Detalla toda la conversación en el protocolo SMTP, y un resumen del proceso en el protocolo MAIL. Para entender el registro hay más información en la siguiente sección. Lista de funciones Devuelve Función void reboot ( string $mode = "MAIL", array $params = null ) Reinicia el servidor, vacía el error. Permite crear una conexión nueva. Es requerido para cambiar de servidores SMTP, pero no para enviar dos o más correos mediante el mismo servidor y/o protocolo. bool check_smtp ( void ) Comprueba si la información proporcionada por la autorización es correcta (es decir, si se puede conectar al servidor e identificarse). Devuelve verdadero si fue exitosa y falso si es errónea. El error se puede ver en la propiedad MSSG. bool send ( array $sender, array $to, string $subject, string $body, array $headers = null, bool $html = false ) Permite el envío de información mediante el protocolo elegido. Los parámetros son los siguientes: $sender: indica el correo del remitente del correo (el que lo envía) según la sintaxis: array ( array ("name" => "Nombre del usuario", "email" => "Correo del usuario" ) ) Nótese que los servidores SMTP sólo aceptan un único remitente. $to: es un array conteniendo la información de los destinatarios siguiendo la sintaxis de $sender con una modificación (desde la versión 1.3). La mayoría de los servidores SMTP no permiten más de 100 destinatarios, así que si se incluyen más estos serán cortados. El listado de correos de destinatario tiene la sintaxis siguiente: array ( array("name" => "Nombre del usuario", "email" => "Correo del usuario", "mode" => "TO ó CC ó BCC"), array("name" => "Otro usuario", "email" => "Correo del otro usuario", Página 5 de 8

) "mode" => "TO ó CC ó BCC") Nótese el campo mode: Desde la versión 1.3, AnesGyMail soporta los correos en modo CC y BCC. El campo mode sirve para especificar el modo: TO para el modo normal, CC para el modo "copia de carbón", y BCC para el modo "copia de carbón oculta". $subject: cadena de texto que incluye el asunto del correo. $body: cadena conteniendo el correo electrónico. Si es solo texto se debe usar \n para indicar un salto de línea. Si es HTML se debe incluir el código completo de HTML en la cadena (el programa no incluye las etiquetas de inicio de HTML). $headers: array conteniendo las cabeceras adicionales. El programa se encarga de enviar las cabeceras To, Subject, From, y aquellas referidas a los tipos. La sintaxis es la siguiente: array( "Encabezado" => "Valor del encabezado", "Encabezado" => "Valor del encabezado") Si se envían headers adicionales To, Subject, From, Cc, Bcc y algunos otros, el sistema los borrará. También el sistema se encarga de que los headers tengan las mayúsculas y minúsculas apropiadamente dispuestas y de codificar el valor del header si es necesario. $html: si es true, indica que el mensaje está codificado en HTML, y por tanto se debe codificar como tal. El programa codifica automáticamente el mensaje de manera que haya una copia sin HTML (para servidores antiguos de correo que no pueden recibirlos), y la propia copia en HTML. Nota: La copia en texto plano se mostrará si y sólo si no se puede mostrar la versión en HTML. Devuelve verdadero si todo salió bien, y falso si no. Además se puede comprobar el valor de $object-> error y mostrará el mismo carácter. void add_attachment ($filename,$name=null) Permite añadir un archivo adjunto hallado en el servidor. La función requiere un parámetro $filename, que será la ruta (completa) al archivo dentro de su servidor, y puede recibir otro parámetro $name que será el nombre del archivo. Si no se especifica este parámetro se sobreentenderá que el archivo se debe llamar igual que el original. void add_attachment_from_file (void) Esta función recupera todos los archivos subidos mediante HTTP (con el botón examinar). Extrae los archivos desde la variable $_FILE, sacando la ruta temporal (no los mueve a ninguna carpeta) y el nombre original del archivo. void clear_attachment (void) De por sí el sistema no borra los adjuntos por lo que si se quiere enviar otro correo sin los adjuntos del anterior se han de limpiar estos. Página 6 de 8

Interpretación del registro del programa Este es un ejemplo del registro del programa: Fri, 16 Apr 2010 00:04:18 +0200 Initialized SMTP Protocol Server: ssl://smtp.server.com Port: 465 Authorization: Yes Username: STMP_email_user@stmp.server.com Password: ********* Legend: [C]lient, [S]erver, [N]ote. ------------------------------ [C] 0.000 - Starting SMTP Connection... OK (at 0.235) [S] 0.235 - Response: OK (220 mx.stmp.server.com) [C] 0.235 - EHLO ssl://smtp.server.com... OK (at 0.235) [S] 0.301 - Response: OK (250-mx.stmp.server.com at your service) [N] 0.301 - NOTE: Autentification: Yes [C] 0.301 - AUTH LOGIN... OK (at 0.301) [S] 0.302 - Response: OK (250-SIZE 35651584) [S] 0.302 - Response: OK (250-8BITMIME) [S] 0.302 - Response: OK (250-AUTH LOGIN PLAIN XOAUTH) [S] 0.302 - Response: OK (250-ENHANCEDSTATUSCODES) [S] 0.302 - Response: OK (250 PIPELINING) [S] 0.364 - Response: Continue (334 VXNlcm5hbWU6) [C] 0.364 - U1RNUF9lbWFpbF91c2VyQHN0bXAuc2VydmVyLmNvbQ==... OK (at 0.364) [S] 0.426 - Response: Continue (334 UGFzc3dvcmQ6) [C] 0.426 - Q29udHJhc2XDsWE=... OK (at 0.426) [S] 0.848 - Response: OK (235 2.7.0 Accepted) [N] 0.848 - NOTE: Autentification: OK [C] 0.848 - MAIL FROM: <info@anesgysd.com>... OK (at 0.848) [S] 0.909 - Response: OK (250 2.1.0 OK t27sm15052687wbc.17) [C] 0.909 - RCPT TO: <info@anesgysd.com>... OK (at 0.909) [S] 1.053 - Response: OK (250 2.1.5 OK t27sm15052687wbc.17) [C] 1.053 - DATA... OK (at 1.054) [S] 1.338 - Response: Continue (354 Go ahead t27sm15052687wbc.17) [N] 1.338 - NOTE: Some attached files were found. [N] 1.338 - NOTE: The file C:\xampp\tmp\phpB25D.tmp starts to be attached. [N] 1.374 - NOTE: The file C:\xampp\tmp\phpB25D.tmp was attached successfully. [N] 1.374 - Message: [C] 1.374 - From: =?ISO-8859-1?B?R3VpbGxlcm1vLiBXLkMu?= <gwc@anesgysd.com>... OK (at 1.375) [C] 1.375 - To: =?ISO-8859-1?B?QmxvZyBAQW5lc0d5?= <blog@anesgysd.com>... OK (at 1.375) [C] 1.375 - Subject: =?ISO-8859-1?B? QXN1bnRvIGRlbCBjb3JyZW8=?=... OK (at 1.375) [C] 1.375 - X-Mailer: AnesGy Mail Module 1.1... OK (at 1.375) [C] 1.375 - User-Agent: AnesGy Mail Module 1.1... OK (at 1.375) [C] 1.375 - X-Signature: AnesGyMail is a PHP class that allows the sending of SMTP mails, with HTML and Attachment support and encryption... OK (at 1.376) [C] 1.376 - MIME-Version: 1.0... OK (at 1.376) [C] 1.376 - Content-Type: multipart/mixed; boundary="asdmailattachment4bc78d642213b";... OK (at 1.376) [C] 1.376 -... OK (at 1.376) [C] 1.376 - --ASDMAILATTACHMENT4bc78d642213b... OK (at 1.376) [C] 1.376 - Content-Type: multipart/alternative; boundary="asdmail4bc78d6422151";... OK (at 1.376) [C] 1.376 -... OK (at 1.376) [C] 1.376 - --ASDMAIL4bc78d6422151... OK (at 1.377) [C] 1.377 - Content-Type: text/plain; charset=iso-8859-1... OK (at 1.377) [C] 1.377 - Content-Transfer-Encoding: quoted-printable... OK (at 1.377) [C] 1.377 -... OK (at 1.377) [C] 1.377 - /*Mensaje en formato solo texto (autogenerado)*/ */... OK (at 1.382) [C] 1.382 - --ASDMAIL4bc78d6422151... OK (at 1.382) [C] 1.382 - Content-Type: text/html; charset=iso-8859-1... OK (at 1.382) [C] 1.382 - Content-Transfer-Encoding: quoted-printable... OK (at 1.382) [C] 1.382 -... OK (at 1.382) [C] 1.382 - /*Mensaje en formato HTML*/*/... OK (at 1.388) [C] 1.388 - --ASDMAIL4bc78d6422151--... OK (at 1.388) [C] 1.388 - --ASDMAILATTACHMENT4bc78d642213b... OK (at 1.388) [C] 1.388 - Content-Type: application/zip; name="=?iso-8859-1?b?qw5lc0d5twfpbcb2ms4ylnppca==?="... OK (at 1.388) [C] 1.388 - Content-Disposition: attachment; filename="=?iso-8859-1?b?qw5lc0d5twfpbcb2ms4ylnppca==?="... OK (at 1.388) [C] 1.388 - Content-Transfer-Encoding: base64... OK (at 1.389) [C] 1.389 - X-Attachment-Id:agm_4bc78d642af8d... OK (at 1.389) [C] 1.389 -... OK (at 1.389) [C] 1.389 - /*Mensaje en formato HTML*/... OK (at 1.411) [C] 1.411 - --ASDMAILATTACHMENT4bc78d642213b--... OK (at 1.411) [C] 1.411 -... OK (at 1.411) Página 7 de 8

[C] 1.411 - End of Message... OK (at 1.411) [S] 2.317 - Response: OK (250 2.0.0 OK 1271369058 t27sm15052687wbc.17) [C] 2.317 - QUIT... OK (at 2.317) [S] 2.383 - Response: OK (221 2.0.0 closing connection t27sm15052687wbc.17) [N] 2.383 - Closed conection Por cuestiones de seguridad este reporte ha sido modificado (se han ocultado los correos, y los mensajes y el contenido del adjunto que en el ejemplo no vienen al caso). Este tipo de registro se compone de una cabecera y un cuerpo del registro. La diferencia es clara, la cabecera son datos técnicos que se establecen al llamar a la clase y el cuerpo del registro compone todo el conjunto de mensajes que se desarrollan entre el servidor SMTP y el programa. La estructura de los registros es la siguiente: Al principio se incluye una etiqueta que indica el origen del mensaje. aquellos que empiezan por [C] son mensajes enviados por el cliente, aquellos que empiezan por [S] son mensajes respuesta del servidor, y los que empiezan por [N] son notas. Si se llega a ver algún mensaje que empiece por [E] o [W] es que ha habido un error. [E] implica error fatal y la interrupción de la comunicación, y [W] implica un aviso de que algo no funcionó pero se puede seguir enviando el correo (por ejemplo, si uno de los adjuntos no existe o si hay demasiados destinatarios). Tras el origen va el timestamp (en segundos) de envío o recepción. El origen e tiempos está en la llamada a la función send. El cuerpo del mensaje enviado o recibido. Si el mensaje fue enviado, se incluye el timestamp de llegada, es decir, el momento en el que el mensaje termina de ser enviado y llega al servidor. En este ejemplo se está usando un ordenador de sobremesa para enviar el correo. Por lo general, debiera ir más rápido en un servidor decente. Página 8 de 8