Jump to content

Envio de email desde formulario


Recommended Posts

Hola. Les cuento, tengo un formulario de contacto asociado a un php, pero al momento de probarlo (no desde el localhost, sino que en la web), se completan los datos pero el email nunca llega. Seguramente es problema del servidor, ya que no tiene servidor de correo. Es por eso que pregunto si alguien sabe como utilizar el servidor SMTP de Gmail para esto. Sé que se puede, pero el como es el problema. les dejo el codigo que estoy usando para el envío, y les agradezco a quienes me puedan ayudar. Gracias!

<?php

if(!$_POST) exit;

$email = $_POST['email'];


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
    $error.="Ingresa una direccion de email valida";
    $errors=1;
}
if($errors==1) echo $error;
else{
    $values = array ('name','email','message');
    $required = array('name','email','message');
     
    $your_email = "mi dirección de emaill";
    $email_subject = "Nuevo Mensaje: ".$_POST['subject'];
    $email_content = "new message:\n";
    
    foreach($values as $key => $value){
      if(in_array($value,$required)){
        if ($key != 'subject' && $key != 'company') {
          if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
        }
        $email_content .= $value.': '.$_POST[$value]."\n";
      }
    }
     
    if(@mail($your_email,$email_subject,$email_content)) {
        echo 'Su mensaje ha sido recibido. Pronto lo contactaremos'; 
    } else {
        echo 'ERROR!';
    }
}
?>

Link to comment
Share on other sites

  • 2 years later...
  • 1 month later...

Claramente el usuario ya está usando la funcion mail nativa de php, la cuál funciona cunado hay algún servidor smtp corriendo en el sistema host; sino hay un servidor smtp, te recomendaría usar phpMailer....te dejo un código de ejemplo :tonto:

<?php  
 
require("class.phpmailer.php"); // path to the PHPMailer class
 
$mail = new PHPMailer();  
 
$mail->IsSMTP();  // Forzando el uso de SMTP
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true; //  SMTP autentificación
$mail->Username = "[email protected]"; // SMTP usuario gmail
$mail->Password = "yourpassword"; // SMTP password gmail
 
$mail->From     = "email del que envia";
$mail->AddAddress("email address receiver");  
 
$mail->Subject  = "Ejemplo PHPMailer Test";
$mail->Body     = "Hi! \n\n email Prueba PHPMailer.";
$mail->WordWrap = 50;  
 
if(!$mail->Send()) {
echo 'Error....mail no enviado.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Mensaje enviado  .';
}
?>

Saludos :tontotv:

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...