Hola a todos
, estaba haciendo un formulario en php que envia datos y una imagen adjunta a un email, quisiera que me ayudaran ya que sigo teniendo errores y el problema creo que esta en el archivo a subir
Ejemplo:
En mi form tengo varias validaciones
if condicion
elseif
elseif
elseif
else
y aqui es donde enviaria el mail si cumple todas las validaciones, el codigo es el siguiente:
else{
//Abre y lee la imagen.
$adjunto = fopen($FILES['voucher']['name'], 'r'); $contenido = fread($adjunto, filesize($FILES['voucher']['name'])); //Se recogen los datos del formulario para montar el cuerpo del mensaje.
$mensaje ="- Nombres: $nombres\n";
$mensaje .="- Apellidos: $apellidos\n";
$mensaje .="- DNI o Carne de Extranjeria: $DNI_CarneExtranjeria\n";
$mensaje .="- Tipo Persona: $tipo_persona\n";
// Se monta la cabecera del mensaje.
$cabeceras = "From:<$mail_service>\n";
// Si se requiere "Reply-To" usar: $cabeceras .= "Reply-To:$correo \n";
$cabeceras .= "MIME-version: 1.0\n";
//Se establecen las otras cabeceras del mensaje.
$cabeceras .= "Content-type: multipart/form-data; ";
$cabeceras .= "boundary=\"Message-Boundary\"\n";
$cabeceras .= "X-attachments:".$adjunto;
$cabeceras .= "Content-transfer-encoding: 7BIT\n";
//Se configuran las propiedades del cuerpo del mensaje
$body_top = "--Message-Boundary\n";
$body_top .= "Content-type: text/plain;charset=US-ASCII\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= "Content-description: Mail messagebody\n\n";
//Se establece el cuerpo del mensaje.
$cuerpo = $body_top.$mensaje;
//Se adjunta la imagen al cuerpo del mensaje.
$nombre_file = $FILES['voucher']['name'];
$cuerpo .= "\n\n--Message-Boundary\n";
$cuerpo .= "Content-type: Binary;name=\"$nombre_file\"\n";
$cuerpo .= "Content-Transfer-Encoding: BASE64\n";
$cuerpo .= "Content-disposition: attachment;filename=\"$nombre_file\"\n\n";
$cuerpo .= "$encoded_attach\n";
$cuerpo .= "--Message-Boundary--\n";
//Se establece la direccion de correo de destino.
$destino = "emaildestino@hotmail.com";
//Se ejecuta la funcion mail PHP.
mail($destino,$asunto,$cuerpo,$cabeceras); echo 'envio exitoso';
}
Y el problema que tengo es el siguiente:
Me aparecen estos errores...
Warning
: fopen() [function.fopen]: Filename cannot be
empty in
/home
/miweb
/public_html
/inscripciones
/mail.php on line
195
Warning
: fread(): supplied argument is not a valid stream resource in
/home
/miweb
/public_html
/inscripciones
/mail.php on line
196
Warning
: fclose(): supplied argument is not a valid stream resource in
/home
/miweb
/public_html
/inscripciones
/mail.php on line
198
envio exitoso.
Lo que sucede ahora es que el mail se envia y llega de la siguiente forma:
Como veran el adjunto llega totalmente diferente (como si se subiera el temporal o algo asi) y ademas, pesa 0 Kb.
Espero me puedan ayudar, ya he intentado varias cosas y nada
Gracias!!