Capturar bastantes variables (PHP) para enviar a correo a través de formulario html
Publicado por Henry (4 intervenciones) el 08/10/2018 16:17:56
El detalle es que al realizar la captura de variables mediante php a formulario, captura algunas y solo muestra al llegar el correo algunas de estas, la incógnita mía y agradecería mucho que pudiese resolverse es si hay un limite para capturar variables y enviar estas a un correo mediante php, tomando en cuenta que una de estas es un archivo adjunto (logre que se envié), pero el resto de datos esenciales no llegan, si trato de enviar mas deja este de funcionar. Agradezco su orientación
Codigo 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
<?php
if($_POST && isset($_FILES['my_file'])) {
$recipient_email = 'example@gmail.com'; //Direccion de correo de quien recibe el mail
$subject = "Asunto del mensaje.";
//Capturo los datos enviados por POST
$email = filter_var($_POST["email"], FILTER_SANITIZE_STRING);
$nombre = filter_var($_POST["nombre"], FILTER_SANITIZE_STRING);
$telefono= filter_var($_POST["telefono"], FILTER_SANITIZE_STRING);
$ciudad= filter_var($_POST["ciudad"], FILTER_SANITIZE_STRING);
$mensaje = filter_var($_POST["mensaje"], FILTER_SANITIZE_STRING);
$reply_to_email = filter_var($_POST["email"], FILTER_SANITIZE_STRING);
//Armo el cuerpo del mensaje
$msm = $mensaje. "Email: \n" . $email . "\n" . $nombre . "\n";
//Obtener datos del archivo subido
$file_tmp_name = $_FILES['my_file']['tmp_name'];
$file_name = $_FILES['my_file']['name'];
$file_size = $_FILES['my_file']['size'];
$file_type = $_FILES['my_file']['type'];
$file_error = $_FILES['my_file']['error'];
if($file_error > 0)
{
die('Error al subir el archivo. No se adjuntó ningún archivo');
}
//Leer el archivo y codificarlo el contenido para armar el cuerpo del email
$handle = fopen($file_tmp_name, "r");
$content = fread($handle, $file_size);
fclose($handle);
$encoded_content = chunk_split(base64_encode($content));
$boundary = md5("pera");
//Encabezados
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From:".$email."\r\n";
$headers .= "Reply-To: ".$reply_to_email."" . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";
//Texto plano
$body = "--$boundary\r\n";
$body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n\r\n";
$body .= chunk_split(base64_encode($msm));
//Adjunto
$body .= "--$boundary\r\n";
$body .="Content-Type: $file_type; name=".$file_name."\r\n";
$body .="Content-Disposition: attachment; filename=".$file_name."\r\n";
$body .="Content-Transfer-Encoding: base64\r\n";
$body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n";
$body .= $encoded_content;
//Enviar el mail
$sentMail = @mail($recipient_email, $subject, $body, $headers);
if($sentMail) //Muestro mensajes segun se envio con exito o si fallo
{
echo"
<h2>Gracias por tu contacto, $cvnombre</h2>
<div>Tu mensaje fué enviado con éxito.</div>
";
}else{
echo "
<h2>Se produjo un error y su pedido no pudo ser enviado</h2>
";
}
}
else{
echo "
<div>No se adjuntó ningún archivo</div>
";
}
?>
Valora esta pregunta


0