Když používáte Database Mail k odesílání e-mailů s přílohami, budete se muset ujistit, že velikost souboru přílohy je v rámci povolené velikosti souboru přílohy.
Pokud potřebujete odeslat přílohy, které jsou větší než limit příloh, budete muset tento limit zvýšit.
Naštěstí lze zvětšit povolenou velikost souboru přílohy pomocí jediného řádku kódu T-SQL.
Chyba
Pokud se pokusíte odeslat přílohu, která je větší než povolená velikost souboru přílohy, zobrazí se tato chyba:
Msg 22051, Level 16, State 1, Line 0 File attachment or query results size exceeds allowable value of 1000000 bytes.
Zkontrolujte limit
Pokud jste ještě neobdrželi chybu, možná nevíte, jaký je limit. Můžete použít sysmail_help_configure_sp
uložená procedura v msdb databáze a zkontrolujte limit velikosti souboru přílohy.
EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';
Výsledek:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 1000000 | Default maximum file size | +-------------+--------------+---------------------------+
V tomto příkladu jsem předal MaxFileSize
jako argument pro zúžení výsledků pouze na možnost konfigurace, která mě zajímá. Můžete také použít sysmail_help_configure_sp
procedura bez jakýchkoli argumentů vrátí všechny možnosti konfigurace.
Změnit limit
Limit velikosti souboru přílohy můžete změnit pomocí sysmail_configure_sp
uložená procedura.
EXEC msdb.dbo.sysmail_configure_sp 'MaxFileSize','3000000';
Nyní, když spustíme sysmail_help_configure_sp
znovu vidíme novou hodnotu.
EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';
Výsledek:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 3000000 | Default maximum file size | +-------------+--------------+---------------------------+
Všimněte si, že popis zůstal stejný. V tomto případě je to trochu zavádějící, protože 1000000 je výchozí maximální velikost souboru – ne 4000000.
Stejným postupem můžete změnit popis. Ve skutečnosti můžete zadat parametr name=value
také páry, chcete-li (to platí také pro sysmail_configure_sp
postup).
Udělejme to znovu, ale tentokrát aktualizuji popis a použiji name=value
párů.
EXECUTE msdb.dbo.sysmail_configure_sp
@parameter_name = 'MaxFileSize',
@parameter_value = '4000000',
@description = 'Current maximum file size';
Nyní, když spustíme sysmail_help_configure_sp
znovu vidíme novou hodnotu.
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = 'MaxFileSize';
Výsledek:
+-------------+--------------+---------------------------+ | paramname | paramvalue | description | |-------------+--------------+---------------------------| | MaxFileSize | 4000000 | Current maximum file size | +-------------+--------------+---------------------------+