Correo Electrónico con PHP

1 Correo Electrónico con PHPTemas: • Función mail(). • Fo...
Author: Cristián Cortés Redondo
0 downloads 2 Views

1 Correo Electrónico con PHPTemas: • Función mail(). • Formato HTML a los mensajes.

2 Correo Electrónico con PHPFunción mail() Se puede utilizar la función mail() de PHP para enviar la información de formularios desde una página de Internet hacia una dirección de correo electrónico. Al utilizar esta función se obvia el procedimiento que resulta poco útil. Con la función mail() se pueden enviar mensajes con texto simple, sin formato, y también se pueden enviar mensajes con formato HTML, dándole color a las letras, resaltando en negritas las letras, insertando imágenes, dibujando tablas, etc.

3 Correo Electrónico con PHPDefinición de la función mail: mail($destino, $asunto, $mensaje, $encabezados); Donde: • $destino: es la dirección a donde se enviará el mensaje • $asunto: es el asunto del mensaje • $mensaje: es el mensaje en sí • $encabezados: aquí se anexa, por ejemplo, quien envía el mensaje, si el mensaje va ir con copia para, si el mensaje va ir con copia oculta para, si tendrá formato html, etc.

4 Correo Electrónico con PHPEjemplo: "Prueba de correo", "esto es una prueba"); ?> // aquí termina el código

5 Correo Electrónico con PHPConfiguración del PHP.ini: [mail function] ; For Win32 only. SMTP = mail.cantv.net smtp_port = 25 sendmail_from =

6 Correo Electrónico con PHPEjemplo Dos: //Si se desea añadir un mensaje de confirmación, se utilizará el siguiente código: $remitente = $mensaje = "Prueba del Segundo Ejercicio"; "Comentarios desde mi pagina", $mensaje, "From: $remitente") or die ("Su mensaje no se envio."); // aquí termina el código ?>

7 Correo Electrónico con PHPLos encabezados más comunes que se pueden utilizarse son: • From: que define la dirección de del remitente • ReplyTo: que define a quien debe responderse el mensaje • BCC: que define una dirección de para enviar una copia oculta del mensaje • "ContentType: text/html; charset=iso88591": que permite utilizar un código html en el mensaje

8 Correo Electrónico con PHPUn ejemplo donde se utilizan estos encabezados sería: $remitente = $_REQUEST[" "]; $destino= $asunto= "Este es un mensaje de felicitación"; $mensaje=“Felicitaciones

Por sus metas alcanzadas

Saludos de parte de la Gerencia de Producción"; $encabezados = "From: $remitente\nReplyTo: $remitente\nContentType:text/html; charset=iso88591"; mail($destino, $asunto, $mensaje, $encabezados) or die ("Su mensaje no se envío."); ?>

9 Correo Electrónico con PHPFormato HTML a los mensajes A veces se quiere enviar un mensaje más vistoso, para lograrlo se debe agregar un formato html: //Ejercicio para enviarle un correo con Formato HTML a un //Cliente $nombre="Luis Garcia"; $titulo ="Usted es el Cliente del Mes"; $subject = "Felicidades";

10 Correo Electrónico con PHP// Continuacion $message=' $titulo

Felicitaciones

Felicidades


';

11 Correo Electrónico con PHP// Continuacion /* Para enviar correos HTML se debe especificar el Contenttype header. */ $headers = "MIMEVersion:1.0\r\n"; $headers .= "Contenttype:text/html; charset=iso88591\r\n"; mail($ , $subject, $message, $headers); ?>

12 Correo Electrónico con PHPEjercicio 5: Con los conocimientos obtenidos hasta ahora, cree un formulario de envío de sugerencias, y se las envíe al correo electrónico de la compañía.

13 Correo Electrónico con PHPEjemplo completo de envío de correo electrónico Formulario de recepción de datos Correo
Nombre Asunto

14 Correo Electrónico con PHP
Página web

15 Correo Electrónico con PHP
Valoracion

16 Correo Electrónico con PHP Ns/Nc 1 2 3 4 5

17 Correo Electrónico con PHP
Consulta VALUE="http://www.buscarportal.com/anuncios/gracias.html">

20 Correo Electrónico con PHP

21 Correo Electrónico con PHPScript PHP para el envío de un correo ## VARIABLES ## Dirección de tu correo ## Asunto axiliar si no lo introduce un asunto que identifique la procedencia del correo. $xasunto="Correo desde tu pagina"; ## Pagina final de gracias. Si el formulario no incluye este campo oculto del formulario. $gracias_defecto="http://www.buscarportal.com"; ## Página final si se produce un error al enviar el correo $error_correo="http://www.buscarportal.com/anuncios/error_correo.html"; ## variable auxiliar, que produce un salto de línea $retorno="\r\n";

22 Correo Electrónico con PHP## CABECERAS DE CORREO ## Diversas cabeceras para el correo. Luego, lo usaremos para enviar el correo. ## $nombre $correo son variables que contienen los valores de: nombre y correo del formulario. $headers = "MIMEVersion:1.0\r\n" ; ## campos y variables nombre, $nombre y correo $correo. No pueden ser modificados ## Han de mantenerse en el formulario para utilizar el mismo script con distintos formularios

23 Correo Electrónico con PHP$headers .= "From: $nombre<$correo>\r\n"; ## Responder al correo $headers .= "ReplyTo: $correo<$correo>\r\n"; ## Otras cabeceras que pueden ponerse si ocurren problemas u omitirse si todo va bien. ## Obligatoriamente, cada elemento de la cabecera termina en \r\n Nueva línea. ## $headers .= "XMailer: PHP/" . phpversion(); ## $headers .= "XSender:$correo<$correo>\r\n"; ## $headers .= "ReturnPath:<$correo>\r\n"; ## $headers .= "Cc: $nombre<$correo>\r\n";

24 Correo Electrónico con PHP## CUERPO DEL MENSAJE INICIO ## Obtención de la IP del visitante ## Empezamos a contruir el mensaje final, sumando los elementos del mensaje $mfinal.="IP visitante: "; ## Guardamos la IP del visitante $mfinal.=$HTTP_SERVER_VARS['REMOTE_ADDR']; $mfinal.=": "; ## Y el puerto del usuario $mfinal.=$HTTP_SERVER_VARS['REMOTE_PORT']; ## añadimos dos retornos de línea $mfinal.=$retorno;

25 Correo Electrónico con PHP## CUERPO DEL MENSAJE AÑADIDO DE CAMPOS AL MENSAJE ## $vareliminar Número de botones del formulario y campos ocultos (últimos elementos) > en este caso (1+1) ## Si queremos eliminar del mensaje el campo oculto de la página final $vareliminar=3; $vareliminar=2; ## Almacenar en un array los nombres de variables del formulario enviado $claves_array=array_keys ($HTTP_GET_VARS);

26 Correo Electrónico con PHP## de i=0 hasta el número de campos del formulario, variables a eliminar for ($i=0;$i<=(count($HTTP_GET_VARS)$vareliminar);$i++){ ## Obtenemos el nombre de cada campo en concreto $nombrevar=$claves_array[$i]; ## Sumamos el nombre de campo de formulario al mensaje final $mfinal .= $nombrevar; $mfinal .= ": "; ## Y añadimos el contenido que haya introducido nuestro visitante $mfinal .= $HTTP_GET_VARS[$nombrevar]; ## Separamos cada campo por dos retornos, podemos eliminar uno $mfinal .= $retorno; }

27 Correo Electrónico con PHP## Si no hay asunto, o no contiene nada, le damos al un asunto defecto if (is_null($asunto)){ $asunto2="correo desde la web";} ## Si hay asunto, añadimos un prefijo propio para identificar que es correo desde la web. else { $asunto2 ="Asunto-->$asunto";}

28 Correo Electrónico con PHP## ENVÍO DEL CORREO ## Para finalizar, envíamos el correo, y comprobamos el resultado $resultado=mail($micorreo, $asunto2, $mfinal, $headers); ## Si quisiésemos enviar un mensaje de acuso de recibo, añadimos esta línea, sabiendo que: ## tenemos que asignar estas variables $asuntoreply (Asunto), $mreply (mensaje), $headers2(mensaje) ## de modo similar a como hemos construido las variables anteriores ## $resultado2=mail($correo, $asuntoreply, $mreply, $headers2);

29 Correo Electrónico con PHP## COMPROBACIÓN ## Si no se ha podido enviar el correo. if ($resultado ==true) { ## Si no hay página de gracias carga las página de defecto if (is_null($pagina_gracias)){ header( "Location: $gracias_defecto" );} else{ ## Si hay página de gracias, cárgala header( "Location: $pagina_gracias" ); } ## Si se ha producido un error, advierte al usuario else header( "Location: $error_correo" ); ?>