När du använder Database Mail för att skicka e-postmeddelanden med bilagor, måste du se till att storleken på den bifogade filstorleken är inom den tillåtna storleken för bilaga.
Om du behöver skicka bilagor som är större än gränsen för bilagor, måste du öka den gränsen.
Lyckligtvis kan en ökning av den tillåtna storleken på bifogade filer göras med en enda rad med T-SQL-kod.
Felet
Här är felet du får om du försöker skicka en bilaga som är större än den tillåtna filstorleken för bilagan:
Msg 22051, Level 16, State 1, Line 0 File attachment or query results size exceeds allowable value of 1000000 bytes.
Kontrollera gränsen
Om du ännu inte har fått ett felmeddelande kanske du inte vet vad gränsen är. Du kan använda sysmail_help_configure_sp
lagrad procedur i msdb databas för att kontrollera storleksgränsen för bifogade filer.
EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';
Resultat:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 1000000 | Default maximum file size | +-------------+--------------+---------------------------+
I det här exemplet skickade jag MaxFileSize
som ett argument för att begränsa resultaten till bara det konfigurationsalternativ som jag är intresserad av. Du kan också använda sysmail_help_configure_sp
procedur utan några argument för att returnera alla konfigurationsalternativ.
Ändra gränsen
Du kan ändra storleksgränsen för bilagor med sysmail_configure_sp
lagrad procedur.
EXEC msdb.dbo.sysmail_configure_sp 'MaxFileSize','3000000';
Nu när vi kör sysmail_help_configure_sp
igen ser vi det nya värdet.
EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';
Resultat:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 3000000 | Default maximum file size | +-------------+--------------+---------------------------+
Observera att beskrivningen har förblivit densamma. I det här fallet är det lite missvisande eftersom 1000000 är standardstorleken för maximal fil - inte 4000000.
Du kan ändra beskrivningen med samma procedur. Faktum är att du kan ange parametern name=value
par också, om du föredrar det (detta gäller även för sysmail_configure_sp
förfarande).
Låt oss göra det igen, men den här gången uppdaterar jag beskrivningen och använder name=value
par.
EXECUTE msdb.dbo.sysmail_configure_sp
@parameter_name = 'MaxFileSize',
@parameter_value = '4000000',
@description = 'Current maximum file size';
Nu när vi kör sysmail_help_configure_sp
igen ser vi det nya värdet.
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = 'MaxFileSize';
Resultat:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 4000000 | Current maximum file size | +-------------+--------------+---------------------------+