Un adjunto atraviesa más etapas que un campo normal: el navegador lo sube, PHP crea un archivo temporal, el formulario lo valida y mueve, la notificación lo referencia y los sistemas de correo aplican límites de tamaño y tipo.
Primero determina si desapareció antes de guardar la entrada o únicamente del email entregado.
Utiliza un archivo de prueba seguro
Crea un documento pequeño e inocuo con nombre único y sin datos personales. Registra tamaño exacto, extensión, hora, ID del formulario y destinatario previsto.
No pruebes ejecutables, documentos confidenciales ni extensiones disfrazadas. Si se admiten imágenes de teléfonos, repite después con un formato realista permitido cuando la ruta básica funcione.
Mantén abierta la página hasta recibir una respuesta auténtica del servidor.
Confirma que el navegador transmitió el archivo
Inspecciona la petición en las herramientas del navegador. Comprueba que usa la carga multipart prevista y que incluye el campo, sin compartir el contenido binario.
Un error JavaScript, el selector móvil o un límite del cliente puede impedir la subida antes de llegar a WordPress. Ver el nombre en pantalla no demuestra que se transmitieran los bytes.
Prueba sin sesión, desde un móvil real si procede y sin extensiones que alteren peticiones.
Compara los límites de PHP y formulario
upload_max_filesize y post_max_size deben admitir la petición completa, no solo el fichero. El servidor web, proxy, plan de Cloudflare o ModSecurity pueden imponer otro límite.
Revisa tamaño máximo y extensiones del propio plugin. Un fichero más pequeño permite distinguir un límite de tamaño de un fallo general.
Amplía los límites únicamente hasta el requisito comercial documentado; aceptar cargas enormes aumenta recursos y riesgo de abuso.
Comprueba el almacenamiento temporal
PHP necesita un directorio temporal escribible y espacio libre. Busca códigos de upload, permisos y discos llenos en los logs PHP y del servidor a la hora exacta.
El hardening o una tarea de limpieza puede borrar el archivo antes de que una notificación asíncrona lo lea. Documenta su ciclo de vida y no hagas público o escribible para todos el directorio como atajo.
Si el plugin conserva ficheros, verifica permisos y retención sin exponer URL predecibles.
Relaciona el campo con la acción de correo
Muchos plugins exigen añadir explícitamente el campo o mail-tag a la configuración de adjuntos. Si se renombró, puede quedar una referencia antigua mientras los campos de texto siguen funcionando.
Compara el ID exacto con la notificación. Revisa las rutas condicionales por separado, porque una de ellas podría omitir el adjunto.
No pongas una ruta del sistema de archivos en el cuerpo del email como sustituto.
Rastrea tamaño y política del proveedor
Localiza el mensaje en los logs de WordPress y del proveedor. La codificación base64 aumenta el tamaño, por lo que un archivo por debajo del límite anunciado puede superar el máximo del mensaje completo.
Conserva cualquier código de rechazo. El gateway destinatario puede bloquear archivos comprimidos, macros, documentos protegidos o ciertos tipos MIME incluso después de la aceptación inicial.
Nunca intentes eludir el filtro cambiando la extensión de un fichero prohibido.
Prefiere enlaces seguros para archivos sensibles
Los adjuntos generan copias en servidores y buzones. Para documentos de identidad, multimedia grande u otras cargas sensibles, utiliza almacenamiento con acceso controlado, enlaces caducables, autenticación y una política de retención explícita.
No guardes uploads en un directorio público enumerable. Confirma que las URL no se puedan adivinar y que al borrar una entrada se eliminen sus ficheros cuando la política lo requiera.
Documenta quién puede acceder y durante cuánto tiempo.
Verifica carga, almacenamiento y entrega
Tras reparar el traspaso, sube otro archivo pequeño. Confirma transmisión, validación, almacenamiento, una notificación e integridad final. Descárgalo como destinatario autorizado y compara nombre, tipo y tamaño.
Prueba después el máximo aprobado y un tipo rechazado, mostrando un error claro en vez de un falso éxito. Verifica también limpieza y eliminación.
Pide ayuda urgente si las cargas contienen datos sensibles, desaparecen de las entradas o provocan rechazo del correo. Comparte códigos, tamaños y nombres sintéticos; nunca archivos de clientes o credenciales.