PHP - subir archivos

   
Vista:

subir archivos

Publicado por zendi (824 intervenciones) el 16/12/2014 01:55:32
tengo este codigo para un formulario para enviar correos


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
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
	form {
		margin: 1em auto;
	    text-align: center;
     }
	span{
	  color: #F60;
	  font-size: 1.5 em;
	}
</style>
</head>
 
<body>
 
<form name="mail_frm" method="post" enctype="multipart/form-data" action="enviar.php">
  De:<input type="text" name="de_txt" /> <br/> <br/>
  Para:<input type="text" name="para_txt" /> <br/> <br/>
  Asunto:<input type="text" name="asunto_txt" /> <br/> <br/>
 
  Adjuntar Archivo: <input type="file" name="archivo_fls" /> <br/> <br/>
 
  Mensaje:<br /><textarea name= "mensaje_txa"/> </textarea> <br/> <br/>
 
  <input type="submit" name="enviar_btn" value="Enviar"/><br/>
  <?php
	if(isset($_GET["respuesta"])){
	   echo "<span>".$_GET["respuesta"] ."</span>";
 
	}
 
  ?>
 
</form>
</body>
</html>

y este el que procesa el envio

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
<?php
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];
$asunto = $_POST["asunto_txt"];
$mensaje = $_POST["mensaje_txa"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
$destino = $_FILES["archivo_fls"]["name"];
 
  include("phpmailer.php");
 
if(move_uploaded_file($archivo,$destino))
{
   $mail = new PHPMailer();
   $mail->IsSMTP();
 
   $mail->SMTPAuth = true;
   $mail->Host = "smtp.gmail.com";
   $mail->Username = "andresmen2004@hotmail.com";
   $mail->Password = "micontraseña";
   $mail->Port = 587;
   $mail->From = $de;
   $mail->AddAddress($para);
   $mail->Subject = $asunto;
   $mail->Body = $mensaje;
   $mail->WordWrap = 50;
   $mail->Timeout=30;
   $mail->IsHTML(true);
   $mail->AddAttachment($archivo);
 
   if ($mail->Send())
      {
        $respuesta ="El mensaje ha sido enviado";
      }
   else
      {
  	    $respuesta ="El mensaje no se pudo enviar";
		$respuesta .="Error: " .$mail->ErrorInfo;
      }
 
}
else
{
  $respuesta = "Ocurrio un error";
}
 
header("Location:correomail.php?respuesta=$respuesta");
 
?>
Estoy probando enviar correos
pero me dice que hay un error de autenticacion,

El mensaje no se pudo enviarError: SMTP Error: Could not authenticate.

comp podriamos solucionar este problemilla? por favor si alguien me sugiere una idea.
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

subir archivos

Publicado por xve (5520 intervenciones) el 16/12/2014 08:24:03
Hola Zendi, la verdad es que con esto del correo no tienes suerte!!!

Para gmail, te falta $smtp->SMTPSecure = "tls";
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;
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

subir archivos

Publicado por zendi (824 intervenciones) el 16/12/2014 16:32:11
Que tal xve. Creo que tienes razon. La pregunta tambien que hago :

Es necesario que las variables tengan un orden dentro del codigo o no importa?:

lo tengo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$mail = new PHPMailer();
   $mail->IsSMTP();
   $mail->SMTPAuth = true;
   $mail->SMTPSecure = "tls";
   $mail->Host = "smtp.gmail.com";
   $mail->Username = "andresmen2004@hotmail.com";
   $mail->Password = "micontraseña"; ///  el asunto es que no debo mostrar la contraseña
   $mail->Port = 587;
   $mail->From = $de;
   $mail->AddAddress($para);
   $mail->Subject = $asunto;
   $mail->Body = $mensaje;
   $mail->WordWrap = 50;
   $mail->Timeout=30;
   $mail->IsHTML(true);
   $mail->AddAttachment($archivo);
con esta estructura que me enviaste sigue dando el mensaje de que no pudo autenticarse,
1
El mensaje no se pudo enviarError: SMTP Error: Could not authenticate.


pero si todo esta completo en el codigo, es extraño!!!!!!.

Es increible!!!!! Llego a pensar que es mi ordenador el del problema definitivamente.
de todos modos sigo luchando con este codigo. Tiene que haber alguna manera de resolverlo.
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
Imágen de perfil de xve

subir archivos

Publicado por xve (5520 intervenciones) el 16/12/2014 19:28:29
Estas utilizando un correo de hotmail contra el servidor de gmail!!! nunca te autenticara!!!!

No tiene nada que ver el orden.
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

subir archivos

Publicado por zendi (824 intervenciones) el 17/12/2014 13:48:41
Xve todo tiene solucion en informatica. Bueno ya no da el problema de si autenticará o no, reconozco el error que cometi.
Ahora da el error este:
Could not access file: C:\wamp\tmp\php1B8.tmp
No puede accesar el archivo. Cuando adjnto el archivo.
Que sugerencias me darias?
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

subir archivos

Publicado por zendi (824 intervenciones) el 16/12/2014 17:00:19
La otra pregunta es:
¿si configuro para Hotmail debo enviar correos exclusivamente a Hotmail y si es para Gmail para Gmail o no importa si es Hotmail para enviar a Gmail o viceversa?
disculpa la forma de la pregunta, porque es logico analizarlo asi.
Yo estoy probando enviando de Hotmail a Hotmail.

y me arroja este mensaje:
1
Could not access file: C:\wamp\tmp\phpE2E.tmp
, aqui hay algo extraño ya que no pide autenticacion, esto tiene que ver mas cuando se adjunta el archivo.
disculpa la andanada de preguntas.
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
Imágen de perfil de xve

subir archivos

Publicado por xve (5520 intervenciones) el 16/12/2014 19:30:25
Cuando tu envías un correo desde tu programa de correo... ya sea outlook o cualquier otro, utilizas un servidor SMTP.

Desde un servidor SMTP puedes enviar correo a cualquier dominio.
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

subir archivos

Publicado por zendi (824 intervenciones) el 17/12/2014 13:25:29
ahora xve, ¿habra alguna solucion para esto?
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

subir archivos

Publicado por zendi (824 intervenciones) el 18/12/2014 13:32:50
Que tal Xve, disculpa me habias enviado un correo pidiendo la contraseña, podrias pedirlo de forma privada nuevamente? quiero gestionar lo del correo de esa manera. El Problema fue que se me cerro el enlace.
Saludos.
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

subir archivos

Publicado por zendi (824 intervenciones) el 19/12/2014 13:37:58
hola Xve, que hay de nuevo, como hago para comunicame contigo de manera privada? No aparece el mensaje rojo en la parte superior derecha.
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
Imágen de perfil de xve

subir archivos

Publicado por xve (5520 intervenciones) el 19/12/2014 18:16:34
Si pulsas sobre mi nombre, iras a una pantalla donde podrás enviarme un mensaje privado... ya tengo tus datos, ahora te lo preparo y envió en privado.
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

subir archivos

Publicado por zendi (824 intervenciones) el 20/12/2014 19:34:40
Que tal xve, la verdad no funcionó,
Pero pregunto:
¿Es necesario tener un servidor aparte de mi ordenador o no es necesario?
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
Imágen de perfil de xve

subir archivos

Publicado por xve (5520 intervenciones) el 21/12/2014 09:26:11
No, solamente tienes que tener un servidor web, ya sea en tu ordenador o en internet, pero con uno es suficiente para subir archivos.
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

subir archivos

Publicado por zendi (824 intervenciones) el 21/12/2014 14:46:08
Pero entonces por qué no sirve en mi ordenador? o es que la clase phpmailer esta dañada? es increible compañero!!!!
he visto varios videotutoriales y si funciona para ellos.
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