Esta pequeña clase en PHP permite usando las librerías de PEAR Mail enviar mensajes de una forma fácil, controlando su envió, adjuntado HTML, vídeos, fotos, etc..
Pero normalmente todos los ejemplo suelen estar en ingles y claro nosotros los Castellano parlantes, necesitamos acentos, eñes o cualquier signo no incluido en el standard US-ASCII
- <?php
-
- require_once 'Mail.php';
- require_once 'Mail/mime.php';
-
- class send_mail {
- var $host;
- var $charset;
- var $msg;
- var $auth;
- var $user;
- var $password;
-
- function send_mail() {
- $this->host='localhost';
- $this->charset='UTF-8';
- $this->msg='';
- $this->file=array();
- }
-
- function host($host) {
- $this->host=$host;
- }
-
- function auth($user, $password) {
- $this->auth=true;
- $this->user=$user;
- $this->password=$password;
- }
-
- function charet($charset) {
- $this->chaset=$charset;
- }
-
- function Attachment($file) {
- array_push($this->file, $file);
- }
-
- function body($msg) {
- $this->msg=htmlentities($msg, ENT_QUOTES, $this->charset);
- }
-
- function body_html($msg) {
- $this->msg=mb_convert_encoding($msg, $this->charset, 'auto');
- }
-
- function send($from, $to, $subject)
- {
- $message = new Mail_mime();
- $message->setHTMLBody($this->msg);
-
- if (! empty($this->file)) {
- foreach($this->file as $file) {
- $message->addAttachment($file);
- }
- }
-
- $body = $message->get(array('html_charset' => $this->charset));
-
- $subject = mb_convert_encoding($subject, 'ISO-8859-1', 'auto');
- $extraheaders = array("From" => $from, "Subject" => mb_encode_mimeheader($subject, 'ISO-8859-1', 'Q'), "Date" => date("D , d M Y H:i:s O"));
- $headers = $message->headers($extraheaders);
-
- $mail = Mail::factory("smtp", array("host" => $this->host, "auth" => $this->auth, "username" => $this->user, "password" => $this->password));
- return $mail->send($to, $headers, $body);
- }
- }
-
- ?>
-
mail pear Version 1.3 (1.63 kB 2010-10-23 21:51:04)
Código de ejemplo:
- <?php
-
- // Abrimos la clase
- $mail = new send_mail;
-
-
- // Adjuntamos el archivo
- $mail->Attachment('ventas.pdf');
-
- // Insertamos el cuerpo del mensaje
- $mail->body('Lararala tralara');
-
- // Enviamos el mensaje
- $res=$mail->send('Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.', 'Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.', 'Informe de ventas');
-
- // Comprobamos el resultado
- if (PEAR::isError($res)) {
- echo "Error en el envió";
- }
-
- ?>
Referencias: