Foros del Web » Programando para Internet » PHP »

Código para mandar correos!

Estas en el tema de Código para mandar correos! en el foro de PHP en Foros del Web. Hola amigos: Disculpen las molestias, pero el problema es que tengo la cabeza hecha agua, pues estoy tratando de mandar correos con PHP desde un ...
  #1 (permalink)  
Antiguo 08/10/2006, 17:22
Avatar de neopegaso  
Fecha de Ingreso: junio-2006
Mensajes: 6
Antigüedad: 17 años, 10 meses
Puntos: 0
Código para mandar correos!

Hola amigos:
Disculpen las molestias, pero el problema es que tengo la cabeza hecha agua, pues estoy tratando de mandar correos con PHP desde un servidor pero no hay manera de que tenga resultado.
He probado con una gran cantidad de códigos pero ninguno me da resultados, he aquí uno de los tantos con los que he probado.

Código:
<?

class cMailer{

var $_Addresses;
var $_countAdd = 0;
var $_ConexionSMTP;
var $_Sender;
var $_server;
var $_Subject = "";

function cMailer(){
}

function AddAddress($address){
$this->_Addresses[$this->_countAdd] = $address;
$this->_countAdd++;
}

function AddSender($sender){
$this->_Sender = $sender;
}

function AddMessage($message){
$this->_Message = $message;
}

function AddSubject($subject){
$this->_Subject = $subject;
}

function Send(){

$strEHLO = "HELO ".$this->_server."\r\n";
fputs($this->_ConexionSMTP,$strEHLO);

$strMAIL = "MAIL FROM: ".$this->_Sender."\r\n";
fputs($this->_ConexionSMTP,$strMAIL);

for($i=0;$i<$this->_countAdd;$i++){
$strRCPT .= "RCPT TO: ".$this->_Addresses[$i]."\r\n";
}
$strRCPT .= "\r\n";
fputs($this->_ConexionSMTP,$strRCPT);


$strDATA1 = "DATA\r\n";
fputs($this->_ConexionSMTP,$strDATA1);


if($this->_Subject != ""){

$strS = "Subject: ".$this->_Subject."\r\n\r\n";
fputs($this->_ConexionSMTP,$strS);
}


$strDATA2 = $this->_Message."\r\n.\r\n";
fputs($this->_ConexionSMTP,$strDATA2);

fputs($this->_ConexionSMTP,"QUIT\r\n");
fclose($this->_ConexionSMTP);

}

function AddHost($host,$port=25){
$this->_ConexionSMTP = fsockopen("$host","$port",$e,$em,5) or die("no puedorl");
echo fgets($this->_ConexionSMTP,4096);
$this->_server = $host;
}

}

?>
y aquí la página que llama a cmialer.php


Código:
<?

set_time_limit(0);

include("cmailer.php");

$m = new cMailer();
$m->AddAddress("[email protected]");
$m->AddAddress("[email protected]");

$m->AddSender("[email protected]");
$m->AddSubject("Mensaje de prueba");

$m->AddMessage("Este es un sencillo mensaje de prueba");

$m->AddHost("dominio.com");

$m->Send();

?>Despues de configurarlo(ponerle el host, lo correos y todo)me dice: 220 ucihostx1.uci.cu ESMTP
pero del correo nada.
Por favor si alguien tiene otro código que funcione, se lo voy a agradecer...
Gracias por adelantado!!!!
PD:Usando CMS este server manda correos
  #2 (permalink)  
Antiguo 08/10/2006, 21:08
 
Fecha de Ingreso: agosto-2006
Ubicación: Argentina, Bahia Blanca
Mensajes: 172
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo basico

neopegaso.
Te paso el codigo que utilizo, es muy basico, pero espero te sirva.
Lo que haces es mediante POST recuperar los datos de un formulario html y luego procesarlos y enviarlos por correo (lo seteas en $to). Si todo sale bien redirecciona a gracias.html
Espero te sirva.
Saludos

Código PHP:

<?

$to
="[email protected]";

$subject="Titulo";

$email $_POST['email'];
$header "From: $email\n"
  
"Reply-To: $email\n";

$nombredelaempresa $_POST['nombredelaempresa'];
$ciudad $_POST['ciudad'];
$opdepublicacion $_POST['opciondepublicidad'];
$nombre $_POST['nombre'];

$pfw_message "Nombre de la Empresa: $nombredelaempresa\n"
"Ciudad: $ciudad\n"
"Opcion de Publicacion: $opdepublicacion\n"
"Nombre: $nombre\n"

$sentmail mail($to,$subject,$pfw_message,$header);

if(
$sentmail){
 echo
" <meta http-equiv=refresh content=0;URL=gracias.html> ";
 }
 else {
 echo
" <meta http-equiv=refresh content=0;URL=error.html> ";
 }
?>
  #3 (permalink)  
Antiguo 09/10/2006, 14:45
Avatar de neopegaso  
Fecha de Ingreso: junio-2006
Mensajes: 6
Antigüedad: 17 años, 10 meses
Puntos: 0
Gracias pero lo probe y no me funciona, parece que es algo de con el SMTP
De verdad te lo agradezco.
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 21:02.