Sql Server – Scriptler ile Mail Ayarlarının Yapılandırılması

Merhabalar,

Öncelikle sql server versiyonunuz için -> select @@VERSION

Sql Server ın express edition sürümlerinde mail ayarlarını arayüz ile yapabilme olanağınız yoktur.

Buna karşın msdb veritabanında tanımlanmış store procedure ler ile bu ayarları yapabilmenize olanak verir.

Aşağıda vereceğim scriptlerin tamamı https://technet.microsoft.com ve bilimum hintli abilerimiz sayfalarından toplanarak alınmıştır 🙂 . Kolaylık olsun diye tek bir sayfa altına alınmıştır.

Şimdi öncelikle kayıtlı mail account ve profillerini ve ayarlarını görebilmek için;

EXEC msdb.dbo.sysmail_help_configure_sp;
EXEC msdb.dbo.sysmail_help_account_sp;
EXEC msdb.dbo.sysmail_help_profile_sp;
EXEC msdb.dbo.sysmail_help_profileaccount_sp;
EXEC msdb.dbo.sysmail_help_principalprofile_sp;

Daha sonra eklemek istediğiniz hesap ayarları için;

EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = ‘BESIKTAS’,
@description = ‘Yazılım alt yapısında kullanılacak olan genel mail adresi.’,
@email_address = ‘no-reply@besiktas.net’,
@display_name = ‘Vodofone Park’,
@mailserver_name = ‘mail.besiktas.net’,
@port = 587,
@username = ‘no-reply@besiktas.net’, @password = ‘123456’,
@enable_ssl = 1,
@mailserver_type = ‘SMTP’;

EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = ‘ÇARŞI’,
@description = ‘Yazılım alt yapısında kullanılacak olan genel mail adresinin Profili’ ;

hesap ile profili oluşturduktan sonra  da bunları bir tabloda ilişkilendiriyoruz ;

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = ‘ÇARŞI’,      @account_name = ‘HAUSIT’, @account_id = 3,      @sequence_number = 1;

böylece profil ismimiz accoun id si 3 olan hesap ile eşleşmiş oldu.Şimdi de öncelik olarak atama işlemimizi gerçekleştiriyoruz.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = ‘guest’,
@profile_name = ‘ÇARŞI’,
@is_default = 1 ;

Bu tanımlamalar ile aşağıdaki script ile sql server üzerinden mail gönderebilirsiniz ;

EXECUTE msdb.dbo.sp_send_dbmail
@profile_name = ‘ÇARŞI’ ,  @recipients   =  ‘abcd@gmail.com’ , @body = ‘deneme’, @subject = ‘ilk mesaj’, @body_format= ‘TEXT’;

Gönderdiğiniz mailleri ise şu şekilde takip edebilirsiniz ;

SELECT [mailitem_id]      ,[recipients]      ,[subject]      ,[body]  ,
[sent_account_id]  — hesap 2 den göndrildiyse 2 ise başarılı bir şekilde gönderilmiştir ,[sent_status]      — 1 ise başarılı bir şekilde gönderilmiş      ,

[send_request_date] — gönderildi – zamanı      ,

[send_request_user]      ,[sent_date]        — iletildi -zamanı      ,[last_mod_date]  FROM [msdb].[dbo].[sysmail_mailitems]

Eğer [sent_account_id] niz NULL ise mail adresinizin şifresi yanlış veya account u tanımlarken bazı tanımlamaları uygun girmemiş olabilirsiniz.

[sent_status] id niz 1 ise başarılı gönderilmiştir demektir.

Gönderemediğiniz mesajlara ait ; “neden gönderemedim ulan bir mail kaç para” diye sinirlenmek yerine ;

SELECT * FROM msdb.dbo.sysmail_log

Scripti ile takip edip ne olup ne bittiğini açıklama  kolonundan anlayabiliriz.

Tanımladığımız hesapları ve profilleri güncellemek istediğimizde kullanacağımız store procedure ler ;

  • EXECUTE msdb.dbo.sysmail_update_account_sp
  • EXECUTE msdb.dbo.sysmail_update_profile_sp
  • EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
  • EXECUTE msdb.dbo.sysmail_update_principalprofile_sp

Örneğin profil ismini değiştirmek istiyorsak ;

EXECUTE msdb.dbo.sysmail_update_profile_sp
@profile_id = 3
,@profile_name = ‘KARTAL
,@description = ‘Yazılım alt yapısında kullanılacak olan genel mail adresinin Profili.’;

Silmek için ise hesapları ;

  • EXECUTE msdb.dbo.sysmail_delete_account_sp
  • EXECUTE msdb.dbo.sysmail_delete_profile_sp
  • EXECUTE msdb.dbo.sysmail_delete_profileaccount_sp
  • EXECUTE msdb.dbo.sysmail_delete_principalprofile_sp

Sp lerini kulanabiliriz.

Örnek olarak hesap uçurmak istediğimizde;

EXECUTE msdb.dbo.sysmail_delete_account_sp
@account_name = ‘DENEMEHESAP’ ;

scriptingindeki gibi kullanabiliriz.

İyi çalışmalar herkese..


mail_scriipt

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s