PHP - Problema Archivos adjuntos con mail ()

 
Vista:
sin imagen de perfil

Problema Archivos adjuntos con mail ()

Publicado por Carlos Andres (6 intervenciones) el 05/06/2014 21:53:03
Hola , tengo el siguiente código de un formulario con la opción de enviar archivos adjuntos directamente a el correo, me funciona perfectamente al adjuntar el archivo, el problema es cuando no adjunto ningún archivo y mando el formulario no me llega nada a el correo.

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
<?php
 
if ($_POST){
 
$num = md5(time());
 
//MAIL BODY
$body = "
<html>
<head>
<title>Monitoreo</title>
</head>
<body style='background:#EEE; padding:30px;'>
<h2 style='color:#767676;'>Monitoreo Grupo Bedoya</h2>";
 
$body .= "
<strong style='color:#0090C6;'>Monitor: </strong>
<span style='color:#767676;'>" . $_POST["monitor"] . "</span>";
 
$body .= "
<strong style='color:#0090C6;'>Email: </strong>
<span style='color:#767676;'>" . $_POST["email"] . "</span>";
 
$body .= "
<strong style='color:#0090C6;'>Nick: </strong>
<span style='color:#767676;'>" . $_POST["nick"] . "</span>";
 
$body .= "
<strong style='color:#0090C6;'>Pagina Monitoreda: </strong>
<span style='color:#767676;'>" . $_POST["pagina"] . "</span></br>";
 
$body .= "</body></html>";
 
$_name=$_FILES["filead"]["name"];
$_type=$_FILES["filead"]["type"];
$_size=$_FILES["filead"]["size"];
$_temp=$_FILES["filead"]["tmp_name"];
 
if( strcmp($_name, "") ) //FILES EXISTS
{
$fp = fopen($_temp, "rb");
$file = fread($fp, $_size);
$file = chunk_split(base64_encode($file));
 
// MULTI-HEADERS Content-Type: multipart/mixed and Boundary is mandatory.
$headers = "From: Monitoreo Grupo Bedoya <monitoreogrupobedoya@hotmail.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=".$num."\r\n";
$headers .= "--".$num."\n";
 
// HTML HEADERS 
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "".$body."\n";
$headers .= "--".$num."\n";
 
// FILES HEADERS 
$headers .= "Content-Type:application/octet-stream ";
$headers .= "name=\"".$_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";
 
}else { //FILES NO EXISTS
 
// HTML HEADERS
$headers = "From: Grupo Bedoya \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
 
}
 
// SEND MAIL
mail("andresgbdesign@outlook.com", "Monitoreo grupo bedoya" , $body, $headers);
 
echo "<div class='ok'>
<strong>El formulario se ha enviado correctamente.</strong></div>";
 
}
?>
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

Problema Archivos adjuntos con mail ()

Publicado por xve (6935 intervenciones) el 06/06/2014 08:08:09
Hola Carlos, tu código lo veo bien, lo que no veo muy bien, es la condición para ver si hay o no archivos...

En vez de utilizar:
1
if( strcmp($_name, "") ) //FILES EXISTS

puedes probar a utilizar algo como:
1
if(isset($_FILES["filead"]))

Me da la sensación que siempre intenta enviar un archivo, aunque no tenga valor la variable $_FILES["filead"]

Nos puedes comentar?
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