SQL Server biedt ons de mogelijkheid om e-mails te verzenden via de Database Mail-oplossing. Dit omvat een aantal opgeslagen procedures die de configuratie en het verzenden van e-mails vergemakkelijken.
Gebruik de sp_send_dbmail
. om een e-mail te verzenden opgeslagen procedure. Deze procedure accepteert een aantal optionele argumenten, waarvan er één u in staat stelt bijlagen te verzenden.
Er zijn eigenlijk twee argumenten waarmee u bijlagen kunt verzenden. Welke je gebruikt hangt af van de context.
Dit zijn:
@file_attachments
– Hiermee kunt u een bestand opgeven om aan de e-mail toe te voegen.@attach_query_result_as_file
– Dit is alleen van toepassing als u ook@query
gebruikt om de resultaten van een zoekopdracht te e-mailen.
Voorbeelden hieronder.
Een bestand bijvoegen
De @file_attachments
argument stelt u in staat om een bestand op te geven dat als bijlage bij de e-mail moet worden gevoegd.
Hier is een voorbeeld:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'The attached file contains all required data.',
@file_attachments = '/var/opt/mssql/bak/Nature.bak',
@subject = 'File attached as discussed';
De waarde moet het absolute pad naar het bestand bevatten.
Standaard is de maximale bestandsgrootte 1 MB per bestand, maar u kunt dit wijzigen met de sysmail_configure_sp
opgeslagen procedure.
Meerdere bestanden bijvoegen
U kunt meerdere bestanden bijvoegen door elke bestandsnaam te scheiden met een puntkomma:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'The attached files contain all required data.',
@file_attachments = '/var/opt/mssql/bak/Nature.bak;/var/opt/mssql/bak/World.bak',
@subject = 'Files attached as discussed';
Zoals vermeld, is de bestandsgroottelimiet van toepassing op elk bestand. Dus als de maximale bestandsgrootte 1 MB is, kan elk bestand in dit voorbeeld maximaal 1 MB zijn (wat resulteert in een totale grootte van 2 MB voor beide bijlagen samen).
Resultaten van een zoekopdracht bijvoegen
U kunt Database Mail ook gebruiken om het resultaat van een query te e-mailen. Dit wordt gedaan met de @query
argument. De resultaten worden standaard weergegeven in de hoofdtekst van de e-mail, maar u kunt ze desgewenst als bijlage toevoegen.
Om ze als bijlage toe te voegen, stelt u de @attach_query_result_as_file
in argument met een waarde van 1
.
Hier is een voorbeeld van het verzenden van zoekopdrachtresultaten als bijlage:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@subject = 'Query results as discussed';
Er zijn nogal wat opties voor u beschikbaar bij het verzenden van queryresultaten in een e-mail.
U kunt bijvoorbeeld @query_attachment_filename
. gebruiken om de bestandsnaam op te geven (indien niet opgegeven, zal Database Mail er een verzinnen). U kunt ook de @query_result_header
. gebruiken argument om aan te geven of de headers al dan niet in de query moeten worden opgenomen, en u kunt de @query_result_no_padding
gebruiken argument om opvulling te verwijderen die automatisch op de resultaten wordt toegepast.