SQL Server memberi kami kemampuan untuk mengirim email melalui solusi Database Mail-nya. Ini termasuk banyak prosedur tersimpan yang memfasilitasi konfigurasi dan pengiriman email.
Untuk mengirim email, gunakan sp_send_dbmail
prosedur tersimpan. Prosedur ini menerima banyak argumen opsional, salah satunya memungkinkan Anda mengirim lampiran.
Sebenarnya, ada dua argumen yang memungkinkan Anda mengirim lampiran. Yang Anda gunakan akan bergantung pada konteksnya.
Mereka adalah:
@file_attachments
– Memungkinkan Anda menentukan file yang akan dilampirkan ke email.@attach_query_result_as_file
– Ini hanya berlaku jika Anda juga menggunakan@query
untuk mengirim email hasil kueri.
Contoh di bawah.
Lampirkan File
@file_attachments
argumen memungkinkan Anda untuk menentukan file yang akan dilampirkan ke email.
Ini contohnya:
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';
Nilai harus menyertakan jalur absolut ke file.
Secara default, ukuran file maksimum adalah 1 MB per file, tetapi Anda dapat mengubahnya dengan sysmail_configure_sp
prosedur tersimpan.
Lampirkan Beberapa File
Anda dapat melampirkan banyak file dengan memisahkan setiap nama file dengan titik koma:
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';
Seperti disebutkan, batas ukuran file berlaku untuk setiap file. Jadi jika batas ukuran file adalah 1 MB, setiap file dalam contoh ini dapat mencapai hingga 1 MB (menghasilkan ukuran total 2 MB untuk gabungan kedua lampiran).
Lampirkan Hasil Kueri
Anda juga dapat menggunakan Database Mail untuk mengirim email hasil kueri. Ini dilakukan dengan @query
argumen. Secara default, hasilnya tercantum di badan email, tetapi Anda dapat menambahkannya sebagai lampiran jika diinginkan.
Untuk menambahkannya sebagai lampiran, setel @attach_query_result_as_file
argumen dengan nilai 1
.
Berikut ini contoh pengiriman hasil kueri sebagai lampiran:
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';
Ada beberapa opsi yang tersedia untuk Anda saat mengirim hasil kueri dalam email.
Misalnya, Anda dapat menggunakan @query_attachment_filename
untuk menentukan nama file (jika tidak ditentukan, Database Mail akan membuatnya). Anda juga dapat menggunakan @query_result_header
argumen untuk menentukan apakah header disertakan dalam kueri atau tidak, dan Anda dapat menggunakan @query_result_no_padding
argumen untuk menghapus padding apa pun yang secara otomatis diterapkan ke hasil.