خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نحوه پیکربندی Database Mail در SQL Server

نحوه پیکربندی Database Mail در SQL Server
با استفاده از SQL Server Database Mail برای ارسال ایمیل از SQL Server Database Engine به کاربران استفاده می شود. حتی شما می توانید خروجی از هر Stored Procedure یا رکوردهای جدول را از طریق ایمیل در قالب فایل متنی یا اکسل بصورت پیوست ایمیل و یا با فرمت HTML در Body ایمیل ارسال کنید.

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



نحوه پیکربندی Database Mail در SQL Server . آموزشگاه رایگان خوش آموز

Configuration using Database Mail Configuration wizard

به SSMS خود لاگین کرده و سپس از پنل object Explorer، به سراغ فولدر Management رفته و از زیر مجموعه آن فولدر Database Mail را انتخاب کنید.

نحوه پیکربندی Database Mail در SQL Server
روی Database Mail کلیک راست کرده و گزینه Configure Database Mail را کلیک کنید.

نحوه پیکربندی Database Mail در SQL Server
پس از کلیک Configure Database Mail، ویزارد Database Mail Configuration Wizard باز شده و می توانید مراحل پیکربندی ایمیل را دنبال کنید.
پس ویزارد را Next کنید.

نحوه پیکربندی Database Mail در SQL Server
اگر برای اولین بار است که Database Mail را پیکربندی می کنید، گزینه Set up Database Mail را انتخاب کنید.
سپس فرم را Next کنید.

نحوه پیکربندی Database Mail در SQL Server
بدین ترتیب وارد مرحله New profile می شوید. حالا باید برای این Mail database یک پروفایل و اکانت ایجاد کنیم.
در قسمت Profile Name و Description، یک نام پروفایل وارد و درقسمت Description توضیحاتی مربوط به این پروفایل را وارد کنید. مانند Job ها، شما پروفایل ها متعددی برای اکانتهای مختلفی می توانید ایجاد کنید. حتما اسامی مناسب برای پروفایل ها انتخاب کنید.
پس وارد کردن نام پروفایل، برای تنظیمات اکانت ایمیل، دکمه Add را کلیک کنید.

نحوه پیکربندی Database Mail در SQL Server
در این قسمت شما از سرویس دهنده های ایمیل مختلفی می توانید استفاده کنید که در اینجا گزینه هایی را مشاهده می کنید که برای پیکربندی ایمیل مورد نیاز است. دقت داشته باشید که این ایمیلی که اینجا تنظیم می کنید، نقش ارسال کننده را دارد.
خب، ما از سرویس Gmail استفاده خواهیم کرد. اگر از Gmail استفاده می کنید با همین تنظیمات می توانید جلو بروید ولی اگر از سرویس دهنده دیگری استفاده می کنید، با مشخصات زیر را متناسب با آن وارد کنید.

نحوه پیکربندی Database Mail در SQL Server
در قسمت account و Description باید نام و توضیحات مانند نام پروفایل را وارد کنید(این نام و توضیحات می تواند متفاوت باشد).
سپس در قسمت Outgoing Mail Server(SMTP، باید فیلدهای را کامل کنید.
آدرس Gmail خود را وارد کرده و Server Name را smtp.gmail.com وارد کرده و سپس port number را 587 و تیک گزینه this server requires a secure connection (ssl) را فعال و از قسمت پایین فرم هم تیک basic authentication را فعال کنید.
دوباره آدرس ایمیل و پسورد را در فیلدهای Password و Confirm Password وارد کنید.
در آخر هم فرم را OK کنید.
اکانتی که تنظیم کرده اید، مانند تصویر زیر در قسمت SMTP account مشاهده می کنید. سپس فرم را Next کنید.

نحوه پیکربندی Database Mail در SQL Server
از لیست تیک پروفایلی که ایجاد کرده اید را فعال و Next کنید.

نحوه پیکربندی Database Mail در SQL Server
در آخرین مرحله با توجه به تنظیماتی که انجام داده اید، باید همه گزینه ها سبز شوند.

نحوه پیکربندی Database Mail در SQL Server
حالا می توانید از این پروفایل و اکانت ایمیلی که در database mail تنظیم کرده اید، استفاده کنید.
مانند تصویر زیر روی Database Mail کلیک راست کرده و گزینه Send Test E-mail را کلیک کنید.

نحوه پیکربندی Database Mail در SQL Server
بدین ترتیب فرم زیر ظاهر می شود. در فرم زیر از قسمت database mail profile، پروفایل مورد نظری که قصد ارسال ایمیل با آن را دارید، انتخاب کنید. اگر که فقط یک پروفایل دارید، پیشفرض همان پروفایل انتخاب شده است.
در قسمت To، باید ایمیل دریافت کننده را وارد کنید.
در قسمت Subject موضوع ایمیل و در قسمت Body متن ایمیل تان را وارد کنید.
در نهایت هم دکمه Send test e-mail را کلیک کنید تا ایمیل ارسال شود.

نحوه پیکربندی Database Mail در SQL Server

Troubleshooting Database Mail

اگر تنظیمات پیکربندی ایمیل را انجام داده اید ولی ایمیل ارسال نشد، باید مراحل عیب یابی را انجام دهید.
ابتدا با database mail log را بررسی کنید شاید نکاتی در آن باشد که متوجه شوید مشکل از کجاست و بتوانید آن را برطرف کنید.
روی Database Mail کلیک راست کرده و گزینه view database mail log را کلیک کنید.

نحوه پیکربندی Database Mail در SQL Server
یا اینکه از اسکریپت زیر استفاده کرده و آن را Run کنید.

نحوه پیکربندی Database Mail در SQL Server
اگر به نتیجه ای نرسیدید، بررسی کنید که آیا database mail در وضعیت فعال است یا خیر. در خروجی کوئری زیر، باید در فیلد Database Mail Xps، خروجی Run_value برابر با 1 باشد.

sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure;
GO

نحوه پیکربندی Database Mail در SQL Server
Database Mail باید سرویسهای Hotmail و Outlook SMTP server به خوبی کار می کند ولی در مورد Gmail باید بررسی کنید که Allow less secure apps فعال باشد. برای این منظور به https://myaccount.google.com/lesssecureapps وارد شده و تیک گزینه Allow less secure apps را on کنید.

نحوه پیکربندی Database Mail در SQL Server
در مورد خودم مشکل دقیقا از همین تنظیم بود که با فعال کردن Allow less secure apps، مشکل عدم ارسال ایمیل از Database Mail برطرف شد.

Configuration of Database Mail using T-SQL Code

شما با استفاده از کوئری هم می توانید پیکربندی Database mail را انجام دهید. برای این منظور، کوئری زیر را در New query وارد و Execute کنید:

sp_configure‘show advanced options’, 1;
GO
RECONFIGURE;
GO

sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
GO

حالا با استفاده از Stored Procedure سیستمی sysmail_add_profile_sp، یک Database profile ایجاد می کنیم که نام پروفایل و توضیحات آن که در ذیل مشاهده می کنید، همگی دلخواه هستند و هر نام و توضیحاتی که بخواهید می توانید جایگزین کنید.

EXECUTE msdb.dbo.sysmail_add_profile_sp

@profile_name = 'your profile name',

@description ='youe description.';

GO

حال قصد داریم به کاربر یا Role، امتیاز و دسترسی استفاده از اینDatabase Mail profile را دهیم که برای این منظور از stored procedure سیستمی sysmail_add_principalprofile_sp استفاده خواهیم کرد.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DatabaseMailAlertProfile',
@principal_name = 'public',
@is_default = 1 ;
GO

پس از آن نوبت به ساخت Database mail account می رسد. برای این منظور از stored procedure سیستمی sysmail_add_account_sp به شرح ذیل استفاده خواهیم کرد.

EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'DatabaseMailAccount',
@description = 'This is Database Mail Account',
@email_address = '*******@gmail.com',
@display_name = 'Database Mail Alert',
@mailserver_name = 'smtp.gmail.com',
@port = 587,
@enable_ssl = 1,
@username = '*******@gmail.com',
@password = 'provide the password for gamil id' ;
GO

در قسمت password، باید پسورد ایمیل را وارد کنید. ضمنا ما از سرویس دهنده Gmail استفاده کرده ایم. پس اگر از سرویس دهنده دیگری استفاده می کنید، باید با توجه به تنظیمات آن، پیکربندی را انجام دهید.
اکنون Database Mail account را به Database Mail profile اضافه می کنیم. برای این منظور هم از stored procedure سیستمی sysmail_add_profileaccount_sp استفاده خواهیم کرد.

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp

@profile_name = 'DatabaseMailAlertProfile',

@account_name = 'DatabaseMailAccount',

@sequence_number =1 ;

GO

پس از اضافه کردن Database Mail Account به Database Mail Profile، می توانیم پیکربندی ایمیل را تست کنیم. برای این منظور هم از stored procedure سیستمی sp_send_dbmail استفاده می کنیم.

EXEC msdb.dbo.sp_send_dbmail

@profile_name = 'DatabaseMailAlertProfile',

@recipients = 'provided recipients valid mail id',

@body = 'provide e- mail message',

@subject = 'provide e-mail subject';

GO

اگر به هر دلیلی قصد حذف این ایمیل از SQL Server را دارید، می توانید از اسکریپت زیر استفاده کنید که این امر با توجه به پروفایل و ایمیلی که وارد کرده اید، انجام می شود.

EXECUTE msdb.dbo.sysmail_delete_profileaccount_sp @profile_name = 'DatabaseMailAlertProfile'

EXECUTE msdb.dbo.sysmail_delete_principalprofile_sp @profile_name = 'DatabaseMailAlertProfile'
EXECUTE msdb.dbo.sysmail_delete_account_sp @account_name = 'DatabaseMailAccount'
EXECUTE msdb.dbo.sysmail_delete_profile_sp @profile_name = 'DatabaseMailAlertProfile'



نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز