Oct
18
2011

Simple PHP send mailEnviar Correo Electronico en PHP

At some point in your websites life, you would like to recieve either feedback, comments or suggestions from your users. With the power of PHP, you can have any type of contact form for any reason you’d like. In this section I want to teach you how to create a simple PHP send mail form, directly to your email with little or no hassle at all. The way we are going to do it is straight-forward, using the same PHP file. We will use a conditional statement if, else to determine what we will display to the user. Let’s use a similar form to the one used in one of our previous posts, Learn Basics for PHP Part 2.
 
 
 
[html]


Jotorres – PHP Send Mail Form

Full Name:
Your Valid Email:
Subject:
Message:
 



[/html]

The above is the simple html form. This should be inside our sendmail.php file. At the top of this file, our php code should be added, right before our html tag. When the user clicks on submit, we will have our variable [php] $_POST['submit'] [/php] available to us. Let’s verify that variable, and all variables that are coming in from the user form. We also need to make sure that the email entered is a valid one as well.

[php]
// We first check if the button submit was clicked.
if(isset($_POST['submit'])){
// If it was clicked, then we proceed
// with all our error handling

// Let's pass the variables
$name = $_POST['name'];
$email = trim($_POST['email']);
$message = $_POST['message'];

// Define an error variable as an array
$errors = array();

// First let's make sure the name is not empty
if(empty($name)){
// If it's empty, then let's place
// it in the errors array.
$errors['name'] = 'Please insert your name.';
}
// Let's check for valid email
if(!(filter_var($email, FILTER_VALIDATE_EMAIL))){
// Invalid email
$errors['email'] = 'Invalid Email Address';
}
if(empty($message)){
// The point of this is to send a message
$errors['message'] = 'Please write a message.';
}
}
?>
[/php]

Now that we have taken care of our erros, let’s try to send out the email message. Right under our previous logic, we should add this send logic.

[php]
if(count($errors) == 0){
// No errors in error array
// try to send email

// Subject could be empty
// Let's use the ternary operator
// to assign default subject or posted subject
$subject = (empty($_POST['subject']) ? 'No subject': $_POST['subject']);
// Address to send the email to
$to = 'youremail@jotorres.com';

// Try to send main
if(mail($to, $subject, $message)){
$send = true;
}
else{
$errors['send'] == 'Errors have occured while sending the message.';
}

}
?>
[/php]

Now that we have handled our sending mail logic, we need to setup the display. We have to make sure, that when the submit button is clicked, and everything goes well, we display a success message to the user. Otherwise, we need to tell them exactly what happened. In order to do this, we need to use the if, else conditional statement. Let’s take a look.

[php]


Jotorres – PHP Send Mail Form

// This part of the code displays errors
// only if they are present.
if(isset($errors) && count($errors) > 0){
echo (isset($errors['name']) ? $errors['name']: ”).’
‘;
echo (isset($errors['email']) ? $errors['email']: ”).’
‘;
echo (isset($errors['message']) ? $errors['message']: ”).’
‘;
echo (isset($errors['send']) ? $errors['send']:”).’
‘;
}

?>

Full Name:
Your Valid Email:
Subject:
Message:
 



[/php]

That’s basically it for this PHP mail function to work. When sending a message with mail function, you can also add an additional_parameters. This can contain a from address, and a reply to address as well.

That’s all for now, but if anyone has any suggestions, comments or questions, feel free to let me know, and I’ll be glad to help.
En algún momento de la vida de su sitio web, a usted le gustaría recibir opiniones, comentarios o sugerencias de sus usuarios. Con el poder de PHP, usted puede tener cualquier tipo de formulario de contacto por cualquier razón que le gustaría. En esta sección quiero enseñarles a crear un formulario sencillo en PHP, de como enviar por correo electrónico, con poca o ninguna molestia en absoluto. La forma en que lo vamos a hacer es sencillo, con el mismo archivo PHP. Vamos a utilizar una condicional if, elseif para determinar lo que vamos a mostrar al usuario. Vamos a usar una forma similar a la utilizada en uno de nuestros posts anteriores,Aprenda lo básico para PHP Parte 2.
 
 
 
[html]


Jotorres – PHP Formulario para envio de correo

Nombre Completo:
Correo Electronico Valido:
Tema:
Mensaje:
 



[/html]

Lo anterior es la forma HTML simple. Esto debe ser dentro de nuestro sendmail.php sendmail.php del archivo. En la parte superior de este archivo, el código php se va añadir, justo antes de nuestra html . Cuando el usuario haga clic a ‘submit’, vamos a tener nuestra variable [php] $_POST['submit'][/ php] a nuestra disposición. Vamos a comprobar que la variable, y todas las variables que están llegando desde el formulario de usuario no esten vacias. También es necesario asegurarse de que el correo electronico enviado es válido también.

[php]
// Verificamos si submit se le hizo clic.
if(isset($_POST['submit'])){
// Luego verificamos errores

// Pasaremos las variables
$name = $_POST['name'];
$email = trim($_POST['email']);
$message = $_POST['message'];

// Definimos un array de errores
$errors = array();

// Vamos asegurarnos que nombre no este vacio
if(empty($name)){
// Si esta vacio, pues pondremos un error
// en el array de errores
$errors['name'] = 'Favor escribir su nombre en el encasillado.';
}
// Verificamos si el correo es valido
if(!(filter_var($email, FILTER_VALIDATE_EMAIL))){
// Correo no es valido
$errors['email'] = 'Correo electronico invalido';
}
if(empty($message)){
// El punto aqui es enviar el mensaje no?
$errors['message'] = 'Favor escribir un mensaje.';
}
}
?>
[/php]

Ahora que nos hemos asegurados de que no hayan erros, vamos a tratar de enviar el mensaje de correo electrónico. Justo debajo de nuestra lógica anterior, debemos añadir esta lógica de enviar.

[php]
if(count($errors) == 0){
// No errores en el array de errores
// intenta enviar el correo

// Tema puede estar vacio
// Utilizaremos el operador Ternary, es
// como si fuera (if, else).
$subject = (empty($_POST['subject']) ? 'No hay Tema': $_POST['subject']);
// Tu correo electronico, para que el mensaje te llegue a ti
$to = 'youremail@jotorres.com';

// Intentamos
if(mail($to, $subject, $message)){
$send = true;
}
else{
$errors['send'] == 'Ocurrieron errores en el envio del mensaje.';
}

}
?>
[/php]

Ahora que hemos manejado nuestra lógica de enviar el correo, necesitamos configurar la pantalla. Hay que asegurarse de que cuando el botón de enviar es pulsado, y todo va bien, se muestra un mensaje de éxito para el usuario. De lo contrario, tenemos que decir exactamente lo que pasó. Para lograr esto, tenemos que usar el if, elseif . Vamos a echar un vistazo.

[php]


Jotorres – PHP Formulario para envio de correo

// Aqui desplegamos los errors
// solo si existen.
if(isset($errors) && count($errors) > 0){
echo (isset($errors['name']) ? $errors['name']: ”).’
‘;
echo (isset($errors['email']) ? $errors['email']: ”).’
‘;
echo (isset($errors['message']) ? $errors['message']: ”).’
‘;
echo (isset($errors['send']) ? $errors['send']:”).’
‘;
}

?>

Nombre Completo:
Correo Electronico Valido:
Tema:
Mensaje:
 



[/php]

Eso es básicamente todo para esta función de envio de correo en PHP para que funcione. Al enviar un mensaje con la función de correo electrónico, también puede agregar uno parametros_adicionales . Este puede contener una dirección de respuesta o una dirección de donde se recibe también.

Eso es todo por ahora, pero si alguien tiene alguna sugerencia, comentario o pregunta, no dude en dejarme saber, y yo estaré encantado de ayudar.

2 Comments+ Add Comment

  • Requested code

    Jotorres – PHP Send mail

    Jotorres – PHP Send Mail Form
    0){
    echo (isset($errors['name']) ? $errors['name']: ”).”;
    echo (isset($errors['email']) ? $errors['email']: ”).”;
    echo (isset($errors['message']) ? $errors['message']: ”).”;
    echo (isset($errors['send']) ? $errors['send']:”).”;
    }

    ?>

    Full Name:

    Your Valid Email:

    Subject:

    Message:

     

    • I take it, that’s not your full logic. Post up how you are filling your message variable, the message being sent to the mail() function.

Leave a comment