[SQL] MS SQL2008에서 메일 사용하기
SQL 2000에서 2008로 업그레이드시 아래와 같이 구성됩니다.
Legacy 아래에 SQL Mail 항목으로 들어가네요.
SQL 2000에서는 xp_sendmail을 사용했으나
SQL 2008에서는 sp_send_dbmail을 사용합니다.
아래 그림의 DatabaseMail 항목에 들어갑니다.
Database Mail 설정은 별도로 다시 다루겠습니다.
xp_sendmail -> sp_send_dbmail 항목 변경이 되었습니다.
Xp_sendmail에서는 아래와 같이 사용하는게 일반적입니다.
exec @result = master.dbo.xp_sendmail @recipients, @mail_msg, '','', '','', @subject
xp_sendmail의 구문은 아래와 같습니다.
xp_sendmail { [ @recipients= ] 'recipients [ ;...n ]' }
[ ,[ @message= ] 'message' ]
[ ,[ @query= ] 'query' ]
[ ,[ @attachments= ] 'attachments [ ;...n ]' ]
[ ,[ @copy_recipients= ] 'copy_recipients [ ;...n ]'
[ ,[ @blind_copy_recipients= ] 'blind_copy_recipients [ ;...n ]'
[ ,[ @subject= ] 'subject' ]
[ ,[ @type= ] 'type' ]
[ ,[ @attach_results= ] 'attach_value' ]
[ ,[ @no_output= ] 'output_value' ]
[ ,[ @no_header= ] 'header_value' ]
[ ,[ @width= ] width ]
[ ,[ @separator= ] 'separator' ]
[ ,[ @echo_error= ] 'echo_value' ]
[ ,[ @set_user= ] 'user' ]
[ ,[ @dbuse= ] 'database' ]
Sp_send_dbmail은 구성항목도 msdb로 이동이 되었습니다.
EXEC msdb.dbo.sp_send_dbmail @profile_name='My Profile Name',
@recipients=@mail_list,
@copy_recipients=@copy_mail_list,
@blind_copy_recipients=@blind_mail_list,
@subject = @title,
@body = @msg
아래는 sp_send_dbmail의 문법입니다.
sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]
[ , [ @recipients = ] 'recipients [ ; ...n ]' ]
[ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]
[ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]
[ , [ @subject = ] 'subject' ]
[ , [ @body = ] 'body' ]
[ , [ @body_format = ] 'body_format' ]
[ , [ @importance = ] 'importance' ]
[ , [ @sensitivity = ] 'sensitivity' ]
[ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]
[ , [ @query = ] 'query' ]
[ , [ @execute_query_database = ] 'execute_query_database' ]
[ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]
[ , [ @query_attachment_filename = ] query_attachment_filename ]
[ , [ @query_result_header = ] query_result_header ]
[ , [ @query_result_width = ] query_result_width ]
[ , [ @query_result_separator = ] 'query_result_separator' ]
[ , [ @exclude_query_output = ] exclude_query_output ]
[ , [ @append_query_error = ] append_query_error ]
[ , [ @query_no_truncate = ] query_no_truncate ]
[ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]
참고로 xp_sendmail은 보안상의 문제로 앞으로는 더 이상 사용하지 못할거라고 하네요.
또한 xp_cmdshell 도 사용을 권장하지 않습니다. 역시 보안상의 문제이고, 사용하기 위해서는 sp_configure에서 설정을 해야합니다.
참고하세요.
댓글
댓글 쓰기