domingo, 20 de mayo de 2012

PHP MAILER


 PHP MAILER
es una clase escrita en PHP que facilita el envío de correo, añadiendo facilidad en el envío de correos con adjuntos, en formato HTML y con diferentes codificaciones, soporte para imagenes embebidas, headers personalizados y además funciona con múltiples servidores de correo.

 
Típicamente para el envío de correo con PHP se utiliza la función mail(), pero esta función tiene varias limitaciones, por ejemplo que no soporta el envío de adjuntos. Entonces PHPMailer nos viene a facilitar este trabajo que de otra forma seria muy engorroso. Viene con un conjunto de métodos que nos ayudarán en el envió de mails.
 
Empezando
Aquí encontraremos dos archivos: class.phpmailer.php el cual contiene las funciones para el envío de correo y class.smtp.php para enviar correo mediante servidores SMTP.
Creamos un nuevo documento PHP en donde incluimos la clase y luego creamos una instancia de la clase para utilizarla mas adelante.
1.        <?php
2.        require("class.phpmailer.php");
3.        $mail = new PHPMailer();
4.        ?>

¿Por qué usar phpmailer?

Es posible enviar email con la funcion mail() de php, pero dicha función no permite algunas de las más populares características que proporcionan los clientes de correo usados actualmente. Entre estas características se encuentran el envío de email con ficheros adjuntos.
PHPMailer hace fácil esta difícil tarea de enviar correos con estas características y puedes incluso utilizar tu propio servidor smtp aunque éste requiera autenticación (un nombre de usuario y contraseña), con lo que se podrá usar una cuenta gratuita de correo obtenida por ejemplo en hotpop.


 Habitualmente, para el envío de correo con PHP se utiliza la función mail(), integrada en el propio lenguaje. Sí bien la función cumple con su cometido, son notorias sus limitaciones.


 ejemplo  usando Sendmail:
require 'class.phpmailer.php';
 
$mail = new PHPMailer();
 
$mail->IsSendmail();//usamos Sendmail, también podemos usar mail() con isMail()
 
$mail->FromName = 'Juan Palomo';
$mail->From = 'remitente@dominio.com';//email de remitente desde donde se envía el correo.
 
$mail->AddAddress('destinatario@dominio.com', 'Destinatario');//destinatario que va a recibir el correo
 
$mail->AddCC('copia@dominio.com', 'copia');//envía una copia del correo a la dirección especificada
 
$mail->Subject = 'Asunto de email';
 
$mail->AltBody = 'cuerpo del mensaje en texto plano';//cuerpo con texto plano
 
$mail->MsgHTML('Mensaje con HTML');//cuerpo con html
 
$mail->AddAttachment("archivo.zip");//adjuntos un archivo al mensaje
 
if(!$mail->Send()) {//finalmente enviamos el email
   echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió
} else {
   echo 'Correo enviado correctamente';
}
 
Enviar un correo usando Gmail y PHPMailer:

require 'class.phpmailer.php';
require 'class.smtp.php'; //incluimos la clase para envíos por SMTP
$mail = new PHPMailer();
 
 
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com"; //servidor smtp
$mail->Port = 465; //puerto smtp de gmail
$mail->Username = 'email@gmail.com';
$mail->Password = 'tucontraseña';
 
$mail->FromName = 'Juan Palomo';
$mail->From = 'remitente@dominio.com';//email de remitente desde donde se envía el correo.
 
$mail->AddAddress('destinatario@dominio.com', 'Destinatario');//destinatario que va a recibir el correo
 
$mail->AddCC('copia@dominio.com', 'copia');//envía una copia del correo a la dirección especificada
 
$mail->Subject = 'Asunto de email';
 
$mail->AltBody = 'cuerpo del mensaje en texto plano';//cuerpo con texto plano
 
$mail->MsgHTML('Mensaje con HTML');//cuerpo con html
 
$mail->AddAttachment("archivo.zip");//adjuntos un archivo al mensaje
 
if(!$mail->Send()) {//finalmente enviamos el email
   echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió
} else {
   echo 'Correo enviado correctamente';
}



jueves, 17 de mayo de 2012

Reporte con Grafica


Reporte con Grafica
Supongamos que ya tenemos nuestro proyecto hecho, lo que haremos es un reporte que muestre una grafica desde el formulario reporte.
 Creamos una nueva tabla,para los campos que llevara la grafica en el reporte
 
Yo llame a mi base de datos dsgrafica.
Agregamos una tabla de datos el titulo de la tabla es casos y los campos son tipo,fumador.
 
Agregamos un nuevo formulario
 
Ahora tenemos que crear el formulario para el reporte, nos vamos a la ventanita que dice orígenes de datos y nos saldrá nuestra tabla como datagridview lo arrastraremos hacendo clic y soltarlo en el formulario
 
luego eliminamos la barra que esta en la parte de arriba
 
Ahora nos vamos a herramientas y pegamos un reportviewer
 
programaremos el formulario del reporte.
 
Public Class frmreportegraf

    Private Sub frmreportegraf_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim fila As DataRow = Dscasos.casos.NewcasosRow
        fila("Tipo") = "Penjamo"
        fila("Fumador") = 2
        Dscasos.casos.Rows.Add(fila)
        Dim fila2 As DataRow = Dscasos.casos.NewcasosRow
        fila2("Tipo") = "Bendeck"
        fila2("Fumador") = 5
        Dscasos.casos.Rows.Add(fila2)
        Me.ReportViewer1.RefreshReport()
    End Sub


End Class

Ahora diseñaremos nuestro reporte, damos clic en el proyecto agregar nuevo elemento,reporting-informe lo nombraremos como rptgraf.
 
Pegamos una herramienta lista y la pegamos en nuestro reporte en blanco
 
Cuando pegamos la herramienta lista nos pide que elijamos nuestros datos de la tabla que utilizaremos.
 
Luego la acoplaremos conforme el tamaño de la pagina del reporte,después iremos a pegar desde la ventana de herramientas grafica y la pegaremos en nuestra pagina de reporte
 
Elegimos los campos que llevara la grafica
 
ya cuando completemos de hacer nuestro reporte elegimos en la flechita de la esquina el reporte para que se visualize
 
Ahora lo ejecutaremos. Con f5