Wanneer u Database Mail gebruikt om e-mails met bijlagen te verzenden, moet u ervoor zorgen dat de bestandsgrootte van de bijlage binnen de toegestane bestandsgrootte van de bijlagen valt.
Als u bijlagen moet verzenden die groter zijn dan de bijlagelimiet, moet u die limiet verhogen.
Gelukkig kan de toegestane bestandsgrootte van bijlagen worden vergroot met een enkele regel T-SQL-code.
De fout
Dit is de foutmelding die je krijgt als je een bijlage probeert te verzenden die groter is dan de toegestane bestandsgrootte voor bijlagen:
Msg 22051, Level 16, State 1, Line 0 File attachment or query results size exceeds allowable value of 1000000 bytes.
Controleer de limiet
Als je nog geen foutmelding hebt gekregen, weet je misschien niet wat de limiet is. U kunt de sysmail_help_configure_sp
. gebruiken opgeslagen procedure in de msdb database om de bestandsgroottelimiet voor bijlagen te controleren.
EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';
Resultaat:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 1000000 | Default maximum file size | +-------------+--------------+---------------------------+
In dit voorbeeld ben ik geslaagd voor MaxFileSize
als argument om de resultaten te beperken tot alleen de configuratie-optie waarin ik geïnteresseerd ben. Je kunt ook sysmail_help_configure_sp
gebruiken procedure zonder argumenten om alle configuratie-opties terug te geven.
De limiet wijzigen
U kunt de bestandsgroottelimiet voor bijlagen wijzigen met de sysmail_configure_sp
opgeslagen procedure.
EXEC msdb.dbo.sysmail_configure_sp 'MaxFileSize','3000000';
Wanneer we nu sysmail_help_configure_sp
. uitvoeren nogmaals, we zien de nieuwe waarde.
EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';
Resultaat:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 3000000 | Default maximum file size | +-------------+--------------+---------------------------+
Merk op dat de beschrijving hetzelfde is gebleven. In dit geval is het een beetje misleidend omdat 1000000 de standaard maximale bestandsgrootte is – niet 4000000.
U kunt de beschrijving met dezelfde procedure wijzigen. In feite kunt u de parameter name=value
. specificeren paren, als je wilt (dit geldt ook voor de sysmail_configure_sp
procedure).
Laten we het nog een keer doen, maar deze keer zal ik de beschrijving bijwerken en de name=value
gebruiken paren.
EXECUTE msdb.dbo.sysmail_configure_sp
@parameter_name = 'MaxFileSize',
@parameter_value = '4000000',
@description = 'Current maximum file size';
Wanneer we nu sysmail_help_configure_sp
. uitvoeren nogmaals, we zien de nieuwe waarde.
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = 'MaxFileSize';
Resultaat:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 4000000 | Current maximum file size | +-------------+--------------+---------------------------+