ساخت Database Mail در SQL

دوشنبه 19 بهمن 1394

در این مقاله قصد داریم نحوه پیاده سازی Database Mail را شرح دهیم .Database Mail یک راه حل سازمانی برای ارسال e-mail از پایگاه داده SQL Server است.

ساخت Database Mail در SQL

Database Mail  امکان جدیدی است که در SQL2005  به عنوان جایگزینی برای SQLMail معرفی شد.Database Mail امکان ارسال ایمیل به هر کاربری توسط SQL را می دهد .

Database Mail یک راه حل سازمانی برای ارسال e-mail از پایگاه داده SQL Server است. با استفاده از Database Mail، برنامه پایگاه داده شما می تواند به کاربران ایمیل ارسال کند. این پیغام می تواند شامل نتایج یک query و یا فایل هایی از هر منبع و یا شبکه ای باشد.

این ایمیل هایی که از طرف SQL فرستاده می شود می تواند حاوی فایل های مختلف و همچنین نتیجه حاصل از اجرای Query های مختلف باشد .

استفاده از Database Mail   مزایایی همچون قابلیت اطمینان بالا ، مقیاس پذیری، امنیت و ... را دارد .نکاتی در مورد Database Mail   وجود دارد که به آنها اشاره می کنیم

Database Mail   به صورت خودکار اجرا نمی شود .می توانیم تنظیمات Database Mail   را با استفاده از روال های ذخیره شده یا Stored Procedure و یا به صورت Wizard انجام دهیم .

برای ارسال ایمیل شما باید یک کاربری با دسترسی DatabaseMailUserRole داشته باشید.

Database Mail    از پروتکل SMTP برای ارسال ایمیل استفاده میکند .

تمام تنظیمات مربوط به Database Mail    در دیتابیس msdb ذخیره می شود .

برای اینکه ادمین دیتابیس بتواند تنظیمات مربوط به روال های ذخیره شده و سایر Application هایی که از Database Mail استفاده می کنند را انجام دهد نیاز به حداقل یک پروفایل Mail Servrver دارد

برای ایجاد Database Mail و کار با آن یک اکانت از نوع Database Mail هم مورد نیاز است .

با استفاده از Database Mail می توانید ایمیل هایی با فرمت Html هم ارسال کنید .

زمانی که قصد ارسال ایمیل به کاربری در هر کجا را داریم SQL به MSDB می گوید که به فایل اجرایی داخل مسیر “MSSQL\Binn\” named “DatabaseMail.exe” وصل شود .با کمک این فایل است که SQL با استفاده از پروتکل SMTP به ارسال ایمیل می پردازد .

بسیار خوب ! شروع به انجام کار عملی می کنیم .

Configuration

به Sql متصل شوید .در داخل management بر روی Database Mail کلیک کنید .

یک پنجره توضیحات باز خواهد شد آن را Ok  کنید تا به مرحله بعد برویم

در پنجره بعدی گزینه هایی برای تنظیم Database Mail نمایش داده می شود بر روی گزینه اول کلیک کنید

در پنجره بعدی از شما می خواهد که Database Mail خود را فعال کنید .بر روی yes کلیک کنید

بعد از این کار پنجره Profile نمایش داده می شود .نام پروفایل را وارد کنید و دکمه add را بزنید .

برای تنظیمات اکانت Mail می توانید از گزینه های زیر استفاده کنید .

سپس Ok کنید.بعد از وارد شدن اطلاعات شکل زیر را خواهید دید

اگر ok کنید پنجره زیر نمایش داده می شود .که در آن تنظیمات قبلی خود را می بینید .

بعد از اینکه اکانت خود را وارد کردید در پنجره ای که باز می شود باید نوع اکانت خود را مشخص کنید .بر روی تب Public Profiles کلیک کنید و بعد در کنار نام اکانت خود یک تیک بزنید

حال یک پنجره ای که تنظیمات پارامترهای سیستم را دارد نمایش داده می شود آن را تایید کنید

در زیر تنظیماتی که برای پارامترها هست لیست شده است

Account Retry Attempts: در بعضی مواقع دیتابیس قصد دارد که ایمیل هایی را به پروفایل های انتخابی ارسال کند .اگر تعداد دفعات را دو بگذارید دو بار این کار را انجام خواهد داد .این گزینه تعداد تلاش ها برای ارسال ایمیل را نشان می دهد .

Account Retry Delay : این گزینه مقدار زمانی  که دیتابیس برای تلاش بعدی خود باید منتظر بماند را بیان می کند .

Maximum File Size : می توانید با این گزینه اجازه ارسال فایل های خیلی بزرگ را ندهید .این گزینه مقدار حجم فایل های ارسالی را مشخص می کند .

Prohibited Attachment File Extensions : با این گزینه از دیتابیس می خواهیم که فایل های Attach شده را نپذیرد و یا فایلهایی با پسوند خاص را قبول نکند .

Database Mail Executable Minimum Lifetime:  این گزینه که زمانی بر حسب ثانیه از ما می پذیرد بیان می کند که اگر صف ارسال ایمیل خالی بود دیتابیس ایمیل ، منتظر باشد یا به همان حالت actiove باقی بماند .

: Logging level سه سطح برای این گزینه وجود دارد که در زیر لیست آن را می بینید .

سطح Normal: خطاها را گزارش میدهد .

سطح Extend: این سطح خطاها ، هشدارها و سایر پیام ها را گزارش می دهد .

سطح Verbose : این سطح کاملترین گزارش را ارائه می دهد .و برای رفع خطاهای موجود گزینه خوبی است .

اگر بر روی گزینه next کلیک کنید یک خلاصه ای از تنظیماتی که تا به حال انجام داده اید در اینجا می بینید .

بعد از next دیتابیس تنظیمات شما را اعمال خواهد کرد.

حال برای اینکه تست کنیم آیا Mail server ما به خوبی کار می کند یا نه ؟ کارهای زیر را انجام می دهیم .

در داخل Management بر روی دیتابیس ایمیلی که ساخته اید کلیک راست کنید و گزینه send test email را بزنید .

پنجره زیر برای شما باز خواهد شد .در این پنجره همان طور که می بینید  در قسمت To به کسی که ایمیل باید ارسال شود نوشته شده است و در body متن ایمیل قرار دارد .با زدن دکمه send پیام ما ارسال خواهد شد .

ولی وقتی دکمه send را می زنید پنجره زیر نمایش داده می شود .آن را ok کنید

بعد از این ایمیلی که ارسال کرده بودیم توسط کاربر دریافت شده و همچنین در SQLAlerts پیغامی مبنی بر دریافت ایمیل وجود دارد .

کار ما به پایان رسید ولی شایان ذکر است که در داخل دیتابیس msdb جداول View و روال های ذخیره شده بسیاری وجود دارد گزارشات کاری که انجام داده ایم برای ما نگه می دارند . با زدن دستور زیر می توانید این جداول را مشاهده کنید .در شکل های زیر دستوراتی که با زدن آنها می توانید اطلاعات مورد نظر را از دیتابیس مشاهده کنید وجود دارد

آموزش نصب sql server 2017

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید