Foros del Web » Programando para Internet » PHP »

Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Estas en el tema de Enviar email de bienvenida junto al registro de usuarios (Ayuda) en el foro de PHP en Foros del Web. Hola amigos, solicito haber si me pueden ayudar, quiero que cuando se registre un usuario en mi web se le envie un email de bienvenida, ...
  #1 (permalink)  
Antiguo 28/04/2009, 03:33
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Hola amigos, solicito haber si me pueden ayudar, quiero que cuando se registre un usuario en mi web se le envie un email de bienvenida, sabeis de algun codigo para hacer eso?
  #2 (permalink)  
Antiguo 28/04/2009, 03:36
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Hay una clase llama PHPMailer... al registrarse haces que se envie un mensage a la direccion del correo que el usuario introduzca...
  #3 (permalink)  
Antiguo 28/04/2009, 03:45
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Mira no entiendo mucho de esto y te agradezco lo que me has mandado pero no entiendo nada jeje, mira hace tiempo encontre este codigo por internet lo que no se como se usa me podrias explicar como usarlo? el codigo es el siguiente:

Código PHP:
<? 
 
class Mailer
{
   
/**
    * sendWelcome - Envía un mensaje de bienvenida a los nuevos
    * usuario registrado, también el nombre de usuario y el suministro de
    * contraseña.
    */
   
function sendWelcome($user$email$pass){
      
$from "From: ".EMAIL_FROM_NAME." <".EMAIL_FROM_ADDR.">";
      
$subject "Bienvenido a CoriaWeb!";
      
$body $user.",\n\n"
             
."Bienvenido! Usted acaba de registrarse en CoriaWeb "
             
."con la siguiente información:\n\n"
             
."Nombre de usuario: ".$user."\n"
             
."Contraseña: ".$pass."\n\n"
             
."Si pierde u olvida su contraseña, una nueva "
             
."contraseña será generada para usted y enviada a esta "
             
."dirección de correo electrónico, si desea cambiar su "
             
."dirección de correo electrónico puede hacerlo yendo a la "
             
."Página \"Mi cuenta\" después de loguearte.\n\n"
             
."Página Web no Oficial de Coria del Río - www.coriaweb.es";

      return 
mail($email,$subject,$body,$from);
   }
};

/* Inicializar el objeto de correo */
$mailer = new Mailer;
 
?>
  #4 (permalink)  
Antiguo 28/04/2009, 04:10
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Hace uso de la funcion mail() de php

Código php:
Ver original
  1. $user = 'pepe';
  2. $email = '[email protected]';
  3. $pass = 'una contraseña';
  4.  
  5. $mailer = new Mailer; //instancia a la clase
  6. $mailer->sendWelcome($user, $email, $pass); //llama a la funcion
  7.  
  8. /*dentro de esta funcion lo mas importante es la parte donde pone
  9. return mail($email,$subject,$body,$from);
  10.  
  11. mail() es una funcion de php para enviar emails.
  12. A esta funcion se le pasa mail(para, asunto, mensaje, [cabeceras_adicionales, [parametros_adicionales]]).
  13. Lo obligatorio es tener el para, el mensaje y asunto... */
  #5 (permalink)  
Antiguo 28/04/2009, 05:13
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Muchas gracias pero ahora tengo un problemilla, el email que envia salen caracteres extraños a cambio de las tildes y ñs eso porque es?
  #6 (permalink)  
Antiguo 28/04/2009, 05:15
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Cita:
Iniciado por rompeguesos Ver Mensaje
Muchas gracias pero ahora tengo un problemilla, el email que envia salen caracteres extraños a cambio de las tildes y ñs eso porque es?
Por que codificacion de la cabecera, es como HTML.

Busca en google cosas cobre cabeceras MIME y codificacion UTF-8
  #7 (permalink)  
Antiguo 28/04/2009, 05:23
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

si yo suelo poner esto para el tema de codificacion:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

pero como hago para ponerlo en el email que se envia?
  #8 (permalink)  
Antiguo 28/04/2009, 05:30
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Cita:
Iniciado por rompeguesos Ver Mensaje
si yo suelo poner esto para el tema de codificacion:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

pero como hago para ponerlo en el email que se envia?
http://www.forosdelweb.com/f18/no-re...centos-283615/
  #9 (permalink)  
Antiguo 28/04/2009, 05:30
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

http://foros.cristalab.com/formulari...tos-y-n-t7049/
  #10 (permalink)  
Antiguo 28/04/2009, 05:39
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Haciendo uno de los ejemplos que me mandas me dice lo siguiente:

Content-type:... List:; syntax illegal for recipient addresses

El codigo es el siguiente al que le e añadido $headers .= "Content-type: text/html; charset=utf-8 \r\n"; en que falla?:

Código PHP:
<?php

/**
    * sendWelcome - Envía un mensaje de bienvenida a los nuevos
    * usuario registrado, también el nombre de usuario y el suministro de
    * contraseña.
    */
class Mailer
{    
function 
sendWelcome($correo$password){
      
$from "From: ".EMAIL_FROM_NAME." <".EMAIL_FROM_ADDR.">";
      
$subject "Bienvenido a CoriaWeb!";
      
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
      
$body $correo.",\n\n"
             
."Bienvenido! Usted acaba de registrarse en CoriaWeb "
             
."con la siguiente información:\n\n"
             
."Nombre de usuario: ".$correo."\n"
             
."Contraseña: ".$password."\n\n"
             
."Si pierde u olvida su contraseña, una nueva "
             
."contraseña será generada para usted y enviada a esta "
             
."dirección de correo electrónico, si desea cambiar su "
             
."dirección de correo electrónico puede hacerlo yendo a la "
             
."Página \"Mi cuenta\" después de loguearte.\n\n"
             
."Página Web no Oficial de Coria del Río - www.coriaweb.es";

      return 
mail($correo,$subject,$body,$from,$headers);
   }
}

/* Inicializar el objeto de correo */
$mailer = new Mailer;

?>
  #11 (permalink)  
Antiguo 28/04/2009, 05:54
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Cita:
Iniciado por rompeguesos Ver Mensaje
Haciendo uno de los ejemplos que me mandas me dice lo siguiente:

Content-type:... List:; syntax illegal for recipient addresses

El codigo es el siguiente al que le e añadido $headers .= "Content-type: text/html; charset=utf-8 \r\n"; en que falla?:

Código PHP:
<?php

/**
    * sendWelcome - Envía un mensaje de bienvenida a los nuevos
    * usuario registrado, también el nombre de usuario y el suministro de
    * contraseña.
    */
class Mailer
{    
function 
sendWelcome($correo$password){
      
$from "From: ".EMAIL_FROM_NAME." <".EMAIL_FROM_ADDR.">";
      
$subject "Bienvenido a CoriaWeb!";
      
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
      
$body $correo.",\n\n"
             
."Bienvenido! Usted acaba de registrarse en CoriaWeb "
             
."con la siguiente información:\n\n"
             
."Nombre de usuario: ".$correo."\n"
             
."Contraseña: ".$password."\n\n"
             
."Si pierde u olvida su contraseña, una nueva "
             
."contraseña será generada para usted y enviada a esta "
             
."dirección de correo electrónico, si desea cambiar su "
             
."dirección de correo electrónico puede hacerlo yendo a la "
             
."Página \"Mi cuenta\" después de loguearte.\n\n"
             
."Página Web no Oficial de Coria del Río - www.coriaweb.es";

      return 
mail($correo,$subject,$body,$from,$headers);
   }
}

/* Inicializar el objeto de correo */
$mailer = new Mailer;

?>
Cambia:
Código PHP:
      $headers .= "Content-type: text/html; charset=utf-8 \r\n"
por:
Código PHP:
      $headers "Content-type: text/html; charset=utf-8 \r\n"
  #12 (permalink)  
Antiguo 28/04/2009, 06:01
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Ahora da este error:

Warning: Cannot modify header information - headers already sent by (output started at /mnt/web7/32/27/51920027/htdocs/coriaweb/usuarios/reg/reg.php:2) in /mnt/web7/32/27/51920027/htdocs/coriaweb/usuarios/reg/reg.php on line 47

el codigo de reg.php es el siguiente:

Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include("config.php");
include(
"../usu/includes/mailer.php");
include(
"../usu/includes/constants.php");
// Preguntaremos si se han enviado ya las variables necesarias 
if (isset($_POST["email"])) { 
$correo $_POST["email"];
$password $_POST["password"]; 
$cpassword $_POST["cpassword"]; 

//recoger direccion ip
$ip $_SERVER['REMOTE_ADDR'];

// Hay campos en blanco 
if($password==NULL|$cpassword==NULL|$correo==NULL) { 
header("location: formreg.php?error=1"); 
}else{ 

//Validar direccion de email
if (!preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$correo)) {
header("location: formreg.php?error=2"); 
}else{ 

//Minimo de caracteres en campo contraseña
if (strlen($password)<4)
{
header("location: formreg.php?error=3");
  
// no tiene mas de 4 caracteres
}else{

// ¿Coinciden las contraseñas? 
if($password!=$cpassword) { 
header("location: formreg.php?error=4");
}else{ 

//encriptar contraseña
$password md5($password);

// Comprobamos si la cuenta de correo ya existe 
$checkemail mysql_query("SELECT email FROM usu WHERE email='$correo'"); 
$email_exist mysql_num_rows($checkemail); 

if (
$email_exist>0) { 
header("location: formreg.php?error=5"); /* <----- Esta es la linea 47*/
}else{

//Todo parece correcto procedemos con la inserccion 
$query "INSERT INTO usu (password, email, ip, fecha) VALUES('$password','$correo','$ip', NOW())"
mysql_query($query) or die(mysql_error()); 
echo 
"El usuario $correo ha sido registrado de manera satisfactoria.<br/>Esta parte de la página está en construcción.<br/><br/><a href=\"../../index.php\">Pulsa aquí para volver a la página principal.</a>";

$mailer = new Mailer//instancia a la clase
$mailer->sendWelcome($correo$password); //llama a la funcion




}  
}
}
?>
  #13 (permalink)  
Antiguo 28/04/2009, 06:18
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Vale amigos, he descubierto cual era el fallo y va bien al quitar el <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> de la pagina reg.php, lo cual me lleva a otro problema que la pagina reg.php falla a la hora de mostrar tildes y eñes, por otro lado en mailer.php no me permite el huso de &headers si lo uso da el fallo de Content-type:... List:; syntax illegal for recipient addresses.

Alguna solucion?
  #14 (permalink)  
Antiguo 28/04/2009, 07:11
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Cambia los Header(Location:... por

<script languaje="JavaScript">
location.href='redireccion.html';
</script>
  #15 (permalink)  
Antiguo 28/04/2009, 10:23
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Respuesta: Enviar email de bienvenida junto al registro de usuarios (Ayuda)

Ya he solucionado todo al respecto y funciona todo perfecto incluso tengo incorporador lo del content utf-8 en el email pero parece como si no hiciera nada ya que el email sigue saliendo mal los caracteres de las tildes y eñes, porque puede ser? el codigo sigue asi:

Código PHP:
<?php

/**
    * sendWelcome - Envía un mensaje de bienvenida a los nuevos
    * usuario registrado, también el nombre de usuario y el suministro de
    * contraseña.
    */
class Mailer
{    
function 
sendWelcome($correo$password){
      
$from "From: ".EMAIL_FROM_NAME." <".EMAIL_FROM_ADDR.">";
      
$headers "Content-type: text/html; charset=utf-8 \r\n";
      
$subject "Bienvenido a CoriaWeb!";
      
$body $correo.",\n\n"
             
."Bienvenido! Usted acaba de registrarse en CoriaWeb "
             
."con la siguiente información:\n\n"
             
."Nombre de usuario: ".$correo."\n\n"
             
."Página Web no Oficial de Coria del Río - www.coriaweb.es";

      return 
mail($correo,$subject,$body,$from,$headers);
   }
}

/* Inicializar el objeto de correo */
$mailer = new Mailer;

?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 06:08.