Cuando utilice el Correo electrónico de base de datos para enviar correos electrónicos con archivos adjuntos, deberá asegurarse de que el tamaño del archivo adjunto esté dentro del tamaño de archivo adjunto permitido.
Si necesita enviar archivos adjuntos que superan el límite de archivos adjuntos, deberá aumentar ese límite.
Afortunadamente, se puede aumentar el tamaño del archivo adjunto permitido con una sola línea de código T-SQL.
El Error
Este es el error que recibirá si intenta enviar un archivo adjunto que sea más grande que el tamaño de archivo adjunto permitido:
Msg 22051, Level 16, State 1, Line 0 File attachment or query results size exceeds allowable value of 1000000 bytes.
Comprobar el límite
Si aún no ha recibido un error, es posible que no sepa cuál es el límite. Puede usar el sysmail_help_configure_sp
procedimiento almacenado en msdb base de datos para verificar el límite de tamaño del archivo adjunto.
EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';
Resultado:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 1000000 | Default maximum file size | +-------------+--------------+---------------------------+
En este ejemplo pasé MaxFileSize
como argumento para restringir los resultados a solo la opción de configuración que me interesa. También puede usar sysmail_help_configure_sp
procedimiento sin ningún argumento para devolver todas las opciones de configuración.
Cambiar el límite
Puede cambiar el límite de tamaño del archivo adjunto con sysmail_configure_sp
procedimiento almacenado.
EXEC msdb.dbo.sysmail_configure_sp 'MaxFileSize','3000000';
Ahora cuando ejecutamos sysmail_help_configure_sp
de nuevo, vemos el nuevo valor.
EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';
Resultado:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 3000000 | Default maximum file size | +-------------+--------------+---------------------------+
Tenga en cuenta que la descripción se ha mantenido igual. En este caso, es un poco engañoso porque 1000000 es el tamaño de archivo máximo predeterminado, no 4000000.
Puede cambiar la descripción con el mismo procedimiento. De hecho, puede especificar el parámetro name=value
pares también, si lo prefiere (esto también es cierto para el sysmail_configure_sp
procedimiento).
Hagámoslo de nuevo, pero esta vez actualizaré la descripción y usaré el name=value
parejas.
EXECUTE msdb.dbo.sysmail_configure_sp
@parameter_name = 'MaxFileSize',
@parameter_value = '4000000',
@description = 'Current maximum file size';
Ahora cuando ejecutamos sysmail_help_configure_sp
de nuevo, vemos el nuevo valor.
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = 'MaxFileSize';
Resultado:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 4000000 | Current maximum file size | +-------------+--------------+---------------------------+