PHP - Enviar correo con php

 
Vista:

Enviar correo con php

Publicado por Jovana orquidea delgado barajas (1 intervención) el 27/02/2015 15:48:31
Hola
Estoy haciendo una pagina web y me pidieron una sección de contacto donde se envié los comentarios a un correo determinado pero cuando publico la pagina no envía ningún correo ni tampoco cuando lo hago local mente.
les adjunto el código ojala y me puedan ayudar ya que soy nueva en php.

pagina de contacto codigo html:

1
2
3
4
5
6
7
8
9
<form action="contacto.php" method="post">
<label for="nombre">Nombre:</label>
<input id="nombre" type="text" name="nombre" placeholder="Nombre y Apellido" required />
<label for="email">Email:</label>
<input id="email" type="email" name="email" placeholder="ejemplo@correo.com" required />
<label for="mensaje">Mensaje:</label>
<textarea id="mensaje" name="mensaje" placeholder="Mensaje" required></textarea>
<input id="submit" type="submit" name="submit" value="Enviar" />
</form>



pagina enviar.php Codigo php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<?php
 
function check_email_address($email)
{
// Primero, checamos que solo haya un símbolo @, y que los largos sean correctos
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
{
// correo inválido por número incorrecto de caracteres en una parte, o número incorrecto de símbolos @
return false;
}
// se divide en partes para hacerlo más sencillo
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++)
{
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
{
return false;
}
} 
// se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
{
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2)
{
return false; // No son suficientes partes o secciones para se un dominio
}
for ($i = 0; $i < sizeof($domain_array); $i++)
{
if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
{
return false;
}
}
}
return true;
}
 
 
/**
* @author luis roberto gonzalez tavera
* @copyright 2010
*/
$validaemail=$_POST[correo];
if (check_email_address($validaemail))
{
 
/*****************



*****************/
 
 
 
if(isset($_POST["submit"]) && !empty($_POST["correo"]))
 
{
 
 
// primero hay que incluir la clase phpmailer para poder instanciar
//un objeto de la misma
require "includes/class.phpmailer.php";
 
//instanciamos un objeto de la clase phpmailer al que llamamos 
//por ejemplo mail
$mail = new phpmailer();
 
//Definimos las propiedades y llamamos a los métodos 
//correspondientes del objeto mail
 
//Con PluginDir le indicamos a la clase phpmailer donde se 
//encuentra la clase smtp que como he comentado al principio de 
//este ejemplo va a estar en el subdirectorio includes
$mail->PluginDir = "includes/";
 
//recibimos variables
$nombre=$_POST[nombre];
//$direccion=$_POST[direccion];
//$telefono=$_POST[telefono];
$email=$_POST[email];
// $mailc=$_POST[maile];
$mensaje=$_POST[mensaje];
 
 
 
//Con la propiedad Mailer le indicamos que vamos a usar un 
//servidor smtp
$mail->Mailer = "smtp";
 
//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = "mail.1csb.mx";
 
//Le indicamos que el servidor smtp requiere autenticación
$mail->SMTPAuth = true;
 
//Le decimos cual es nuestro nombre de usuario y password
$mail->Username = "Contacto@1csb.mx";
$mail->Password = "callcenter2010";
 
 
//Indicamos cual es nuestra dirección de correo y el nombre que 
//queremos que vea el usuario que lee nuestro correo
$mail->From = "Contacto@1csb.mx";
$mail->FromName = "Prendal";
 
//el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar 
//una cuenta gratuita, por tanto lo pongo a 30 
$mail->Timeout=30;
 
//Indicamos cual es la dirección de destino del correo
$mail->AddAddress("jovana.delgado84@gmail.com");
 
$mail->AddAddress("$mailc");
 
 
 
 
//Asignamos asunto y cuerpo del mensaje
//El cuerpo del mensaje lo ponemos en formato html, haciendo 
//que se vea en negrita
$mail->Subject = "Prendal";
$mail->Body = "<body><center>
<h1 style=\"font-family:Verdana,sans-serif; color:#ff6600; \">
Mensaje de contacto salpro</h1></center> <br>Correo : $correo <br>Nombre : $nombre <br>Telefono : $telefono <br>Direccion : $direccion <br>Comentario : $comentario";

//Definimos AltBody por si el destinatario del correo no admite email con formato html 
$mail->AltBody = "Prendal";

//se envia el mensaje, si no ha habido problemas 
//la variable $exito tendra el valor true
$exito = $mail->Send();

//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho 
//para intentar enviar el mensaje, cada intento se hara 5 segundos despues 
//del anterior, para ello se usa la funcion sleep 
$intentos=1; 
while ((!$exito) && ($intentos < 5)) {
sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1; 

}


if(!$exito)
{
echo "Problemas enviando correo electrónico a ".$valor;
echo "<br>".$mail->ErrorInfo;
}
else
{
header("location:mashala.php?nombre=$nombre&correo =$correo&enviado=1");
}
 
}
 
else
{
 
 
}
 
 
}
else
{
 
header("location:mashala.php?nombre=$nombre&correo =novalido&enviado=2");
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Enviar correo con php

Publicado por xve (6935 intervenciones) el 01/03/2015 19:28:55
Hola Jovana, creo que te falta algo de configuración...

Yo para enviar desde gmail, utilizo esta:
1
2
3
4
5
6
$smtp->SMTPAuth = true;
$smtp->SMTPSecure = "tls";
$smtp->Host = "smtp.gmail.com";
$smtp->Username = "miCuenta@gmail.com";
$smtp->Password = "miPassword";
$smtp->Port = 587;

Que esta indicado en este código:
http://www.lawebdelprogramador.com/codigo/PHP/1884-Envio-de-correo-mediante-servidor-SMTP.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar