Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Enviar dos corréos smtp distintos en el mismo php

Estas en el tema de Enviar dos corréos smtp distintos en el mismo php en el foro de PHP en Foros del Web. Buenas tardes, este es mi primer tema en el foro. Tengo el típico formulario html que envía un corréo de contacto a través de php ...
  #1 (permalink)  
Antiguo 16/03/2014, 11:26
Avatar de EduardoPartearroyo  
Fecha de Ingreso: marzo-2014
Ubicación: Bogotá
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Pregunta Enviar dos corréos smtp distintos en el mismo php

Buenas tardes, este es mi primer tema en el foro. Tengo el típico formulario html que envía un corréo de contacto a través de php a una dirección (de correo) de la empresa. El correo es smtp y usa mi cuenta de gmail, es decir smtp.gmail.com. Quisiera que se enviara otro correo de confirmación al usuario. Es decir, ncesito que se envíen dos correos, el que va a la empresa y el de confirmación para el cliente. Ambos deben llevar información distinta así que NO se puede simplemente usar AddAddress() y agregar una dirección, bueno la verdad sí podría pero no sé si quede muy bien presentado. El código que tengo:

Código PHP:
<?php
ob_start
();
phpinfo();
$nombre $_POST['nombre'];
$cedula $_POST['cedula'];
$telefono $_POST['telefono'];
$celular $_POST['celular'];
$email $_POST['email'];
$predio $_POST['grupo1'];
$valor $_POST['valor'];
$ciudad $_POST['ciudad'];
$observaciones $_POST['observaciones'];

//SMTP needs accurate times, and the PHP time zone MUST be set
//This should be done in your php.ini, but this is how to do it if you don't have access to that
date_default_timezone_set('Etc/UTC');

require 
'PHPMailerAutoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer();
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->CharSet 'UTF-8';
$mail->SMTPDebug 2;
//Ask for HTML-friendly debug output
$mail->Debugoutput 'html';
//Set the hostname of the mail server
$mail->Host 'smtp.gmail.com';
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port 587;
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure 'tls';
//Whether to use SMTP authentication
$mail->SMTPAuth true;
//Username to use for SMTP authentication - use full email address for gmail
$mail->Username "[email protected]";
//Password to use for SMTP authentication
$mail->Password "LAPROMESADEDIOS-3111142";
//Set who the message is to be sent from
$mail->setFrom('[email protected]''GH&B - Ventas');
//Set an alternative reply-to address
$mail->addReplyTo('[email protected]''Global Home and Business - Ventas');
//Set who the message is to be sent to
$mail->addAddress('[email protected]''Jorge E. Jaimes J.');
//Set the subject line
$mail->Subject 'Consignación de inmueble para la venta por '.$nombre;
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML(
'
<b> Quien consigna el inmueble para venta: </b>'
$nombre.
'
<br/><b> Cédula de ciudadanía: </b>'
$cedula.
'
<br/><b> Teléfono fijo: </b>'
$telefono.
'
<br/><b> Teléfono celular: </b>'
$celular.
'
<br/><b> Corréo electrónico: </b>'
$email.
'
<br/><b> Tipo de predio: </b>'
$predio.
'
<br/><b> Valor de venta del predio: </b>'
$valor.
'
<br/><b> Ciudad en la que se ubica el predio: </b>'
$ciudad.
'
<br/><b> Observaciones: </b>'
$observaciones.
'<br/><br/><br/><img src="images/logo.svg"> <br> <b>Ventas, Global Home & Business SAS</b>'


);
//Replace the plain text body with one created manually
$mail->AltBody 'Texto';
//Attach an image file
//-------$mail->addAttachment('images/phpmailer_mini.png');

//send the message, check for errors
if (!$mail->send()) {
    echo 
"Mailer Error: " $mail->ErrorInfo;
} else {
    echo 
"Message sent!";
}





//Create a new PHPMailer instance
$mailCliente = new PHPMailer();
//Tell PHPMailer to use SMTP
$mailCliente->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mailCliente->CharSet 'UTF-8';
$mailCliente->SMTPDebug 2;
//Ask for HTML-friendly debug output
$mailCliente->Debugoutput 'html';
//Set the hostname of the mail server
$mailCliente->Host 'smtp.gmail.com';
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mailCliente->Port 587;
//Set the encryption system to use - ssl (deprecated) or tls
$mailCliente->SMTPSecure 'tls';
//Whether to use SMTP authentication
$mailCliente->SMTPAuth true;
//Username to use for SMTP authentication - use full email address for gmail
$mailCliente->Username "[email protected]";
//Password to use for SMTP authentication
$mailCliente->Password "***********************";
//Set who the message is to be sent from
$mailCliente->setFrom('[email protected]''GH&B - Ventas');
//Set an alternative reply-to address
$mailCliente->addReplyTo('[email protected]''Global Home and Business - Ventas');
//Set who the message is to be sent to
$mailCliente->addAddress($email'Eduardo Patarroyo');
//Set the subject line
$mailClinte->Subject 'Consignación de inmueble para la venta por '.$nombre;
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mailCliente->msgHTML(
'Gracias por consignar su inmueble para la venta, a continuación mostramos los datos tomados: <br/><br/>
<b> Quien consigna el inmueble para venta: </b>'
$nombre.
'
<br/><b> Cédula de ciudadanía: </b>'
$cedula.
'
<br/><b> Teléfono fijo: </b>'
$telefono.
'
<br/><b> Teléfono celular: </b>'
$celular.
'
<br/><b> Corréo electrónico: </b>'
$email.
'
<br/><b> Tipo de predio: </b>'
$predio.
'
<br/><b> Valor de venta del predio: </b>'
$valor.
'
<br/><b> Ciudad en la que se ubica el predio: </b>'
$ciudad.
'
<br/><b> Observaciones: </b>'
$observaciones.
'<br/>Nos comunicaremos con usted lo más pronto posible
<br/>
<br/>
<img src="images/logo.svg"> 
<br> 
<b>Ventas, Global Home & Business SAS</b>'


);
//Replace the plain text body with one created manually
$mailCliente->AltBody 'Texto';
//Attach an image file
//-------$mail->addAttachment('images/phpmailer_mini.png');

//send the message, check for errors
if (!$mailCliente->send()) {
    echo 
"Cannot send confirmaion message to GH&B customer. Mailer Error: " $mailCliente->ErrorInfo;
} else {
    echo 
"Confirmation message sent to GH&B customer!";
}
?>
El error que de da es:

Fatal error: Cannot redeclare class SMTP in D:\inetpub\vhosts\global-home.com.co\httpdocs\includes\class.smtp.php on line 35

El primer corréo, es decir a la empresa llega pero es el segundo el que produce el error. La verdad no sé mucho de php y tal vez es fácil arreglar esto pero no se como hacerlo.
  #2 (permalink)  
Antiguo 16/03/2014, 11:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar dos corréos smtp distintos en el mismo php

Cita:
Fatal error: Cannot redeclare class SMTP in D:\inetpub\vhosts\global-home.com.co\httpdocs\includes\class.smtp.php on line 35
El error es básico: no puedes declarar dos veces una misma clase (lo mismo pasa con funciones, etc.)

Es decir que seguramente incluyes dos veces la misma librería, lo cual está mal.

Sólo debes incluirla una vez, y puedes usarla varias veces.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/03/2014, 12:22
Avatar de EduardoPartearroyo  
Fecha de Ingreso: marzo-2014
Ubicación: Bogotá
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Información Respuesta: Enviar dos corréos smtp distintos en el mismo php

Gracias, por la respuesta, no pensé que fuera tan rápida. Lo que dices es cierto, pero no sé cómo hacerlo, es decir no sé que debería hacer, porque pienso que debo crear un nuevo
Código PHP:
$mailCliente = new PHPMailer(); 
para crear un nuevo corréo dentro del mismo código, no sé si esa sea la forma correca, ni siquiera sé si es esto exactamente lo que llama la clase la segunda vez. No sé mucho, mejor dicho, casi nada de php.
  #4 (permalink)  
Antiguo 16/03/2014, 12:49
Avatar de EduardoPartearroyo  
Fecha de Ingreso: marzo-2014
Ubicación: Bogotá
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Enviar dos corréos smtp distintos en el mismo php

OK, ya está, usando la misma variable $mail para los dos corréos, pero solo modificando, la dirección a la que se envía y el cuerpo del mensaje. Quedaría así:

Código PHP:
Ver original
  1. <?php
  2. $nombre = $_POST['nombre'];
  3. $cedula = $_POST['cedula'];
  4. $telefono = $_POST['telefono'];
  5. $celular = $_POST['celular'];
  6. $email = $_POST['email'];
  7. $predio = $_POST['grupo1'];
  8. $valor = $_POST['valor'];
  9. $ciudad = $_POST['ciudad'];
  10. $observaciones = $_POST['observaciones'];
  11.  
  12.  
  13. require 'PHPMailerAutoload.php';
  14.  
  15. $mail = new PHPMailer();
  16. $mail->isSMTP();
  17. $mail->CharSet = 'UTF-8';
  18. $mail->SMTPDebug = 2;
  19. $mail->Debugoutput = 'html';
  20. $mail->Host = 'smtp.gmail.com';
  21. $mail->Port = 587;
  22. //Set the encryption system to use - ssl (deprecated) or tls
  23. $mail->SMTPSecure = 'tls';
  24. $mail->SMTPAuth = true;
  25. $mail->Username = "[email protected]";
  26. $mail->Password = "LAPROMESADEDIOS-3111142";
  27. $mail->setFrom('[email protected]', 'GH&B - Ventas');
  28. $mail->addReplyTo('[email protected]', 'Global Home and Business - Ventas');
  29. $mail->addAddress('[email protected]', 'Jorge E. Jaimes J.');
  30. $mail->Subject = 'Consignación de inmueble para la venta por '.$nombre;
  31. $mail->msgHTML(
  32. '
  33. <b> Quien consigna el inmueble para venta: </b>'. $nombre.
  34. '
  35. <br/><b> Cédula de ciudadanía: </b>'. $cedula.
  36. '
  37. <br/><b> Teléfono fijo: </b>'. $telefono.
  38. '
  39. <br/><b> Teléfono celular: </b>'. $celular.
  40. '
  41. <br/><b> Corréo electrónico: </b>'. $email.
  42. '
  43. <br/><b> Tipo de predio: </b>'. $predio.
  44. '
  45. <br/><b> Valor de venta del predio: </b>'. $valor.
  46. '
  47. <br/><b> Ciudad en la que se ubica el predio: </b>'. $ciudad.
  48. '
  49. <br/><b> Observaciones: </b>'. $observaciones.
  50. '<br/><br/><br/><img src="images/logo.svg"> <br> <b>Ventas, Global Home & Business SAS</b>'
  51.  
  52.  
  53. );
  54. $mail->AltBody = 'Texto';
  55.  
  56. if (!$mail->send()) {
  57.     echo "Mailer Error: " . $mail->ErrorInfo;
  58. } else {
  59.     echo "Message sent!";
  60. }
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. $mail->setFrom('[email protected]', 'GH&B - Ventas');
  68. $mail->addReplyTo('[email protected]', 'Global Home and Business - Ventas');
  69. $mail->addAddress($email, 'Eduardo Patarroyo');
  70. $mail->Subject = 'Consignación de inmueble para la venta por '.$nombre;
  71. $mail->msgHTML(
  72. 'Gracias por consignar su inmueble para la venta, a continuación mostramos los datos tomados: <br/><br/>
  73. <b> Quien consigna el inmueble para venta: </b>'. $nombre.
  74. '
  75. <br/><b> Cédula de ciudadanía: </b>'. $cedula.
  76. '
  77. <br/><b> Teléfono fijo: </b>'. $telefono.
  78. '
  79. <br/><b> Teléfono celular: </b>'. $celular.
  80. '
  81. <br/><b> Corréo electrónico: </b>'. $email.
  82. '
  83. <br/><b> Tipo de predio: </b>'. $predio.
  84. '
  85. <br/><b> Valor de venta del predio: </b>'. $valor.
  86. '
  87. <br/><b> Ciudad en la que se ubica el predio: </b>'. $ciudad.
  88. '
  89. <br/><b> Observaciones: </b>'. $observaciones.
  90. '<br/>Nos comunicaremos con usted lo más pronto posible
  91. <br/>
  92. <br/>
  93. <img src="images/logo.svg">
  94. <br>
  95. <b>Ventas, Global Home & Business SAS</b>'
  96.  
  97.  
  98. );
  99. $mail->AltBody = 'Texto';
  100.  
  101. if (!$mail->send()) {
  102.     echo "Cannot send confirmaion message to GH&B customer. Mailer Error: " . $mail->ErrorInfo;
  103. } else {
  104.     echo "Confirmation message sent to GH&B customer!";
  105. }
  106. ?>

Última edición por EduardoPartearroyo; 16/03/2014 a las 12:55 Razón: Código PHP más legible, más limpio
  #5 (permalink)  
Antiguo 16/03/2014, 12:59
Avatar de EduardoPartearroyo  
Fecha de Ingreso: marzo-2014
Ubicación: Bogotá
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Enviar dos corréos smtp distintos en el mismo php

Mil disculpas por publicar un problema que no lo era tanto. De todas formas tal vez haya alguien que tenga esta duda. Gracias Pateketrueke por tu interés y pronta respuesta.

Etiquetas: distintos, formulario, html, smtp
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:01.