sestdiena, 2011. gada 26. februāris

Konta un profila izveide e-pastu sūtīšanai (DB Mail)

Rakstā parādīti divi veidi (caur SSMS interfeisu un ar skripta palīdzību), kā izveidot DB Mail kontu un profilu e-pastu sūtīšanai izmantojot DB Mail.

Ar SSMS palīdzību
Serveris->Management->Database Mail, tad labā poga un "Configure Database Mail":
Parādās "wellcome" lapa, par kuru neko daudz nestāstīšu, tajā jānospiež "Next", un tiek iegūta šāda forma:
Nākamais ko darīsim- veidosim profilu un uzreiz tam piesaistīsim kontu ar SMTP servera adresi. Tātad- spiežam "Next". Nākamajā logā mums ir jāievada profila nosaukums, apraksts un jāpievieno konti, tas varētu izskatīties apmēram šādi:
Kad ir ievadīts profila nosaukums un apraksts, attiecīgajam profilam pieliksim kontu (tātad- SMTP Servera adresi, ko lietot šim profilam). Praktiski ir iespējams pievienot daudz kontus, bet lai pārāk nesarežģītu, šo iespēju neapskatīsim. Pēc "Add" pogas nospiešanas redzēsim šādu logu:
Augstākajā attēlā ir jāievada konts, tā apraksts, kā arī jānorāda SMTP servera parametri (piemēram, no kāda e-pasta tiks sūtīti meili, SMTP servera adrese un ports, SMTP servera autentifikācija). Šajā logā gan pateikt priekšā ko rakstīt nevar- tas atkarīgs no tā, kādu SMTP serveri izmantosiet. Kad informācija ievadīta, jāspiež poga "OK", lai atgrieztos iepriekšējā formā.
Un jā, tagad ir pieejama arī "Next" poga! Nospiežot to, nonākam nākamajā logā, kurā es jau pamanījos nomainīt divas lietas- pirmkārt, ieliku ķeksīti, ka profils ir publisks un otra- uzliku, ka šis ir noklusētais profils:
Ekrānā arī redzams otrs aizliknis (vai tā tulko 'tab'?), ko šoreiz neapskatīsim, jo veidojam publisku profilu. Spiežam pogu "Next" un ieraugām nākamo logu:
Bet uzmanību- šajā logā tiek konfigurēti sistēmas parametri- tas nozīmē, ka šie parametri iespaidos visus kontus un profilus! Šajā logā var norādīt daudz svarīgas lietas. Īpaši gribētu uzsvērt "Login Level", ar kā palīdzību nosaka, kādi notikumi tiek reģistrēti. Kad šajā logā viss ir aizpildīts, spiežam "Next", nākamajā logā redzam visu, kas tiks izdarīts:
Ja visam piekrītam un ir tā kā vēlējāmies, jāspiež poga "Finish" un iegūstam paziņojumu par rezultātu:
Īpašu uzmanību gribētu pievērst tam, ka visas darbības ir "Success"- tātad veiksmīgas. Neskatoties uz to, ka iepriekš es ievadīju pilnīgas muļķības SMTP servera adresē. Ar to jāsaprot, ka šajā brīdī netiek pārbaudīts, vai SMTP serveris strādā, bet tiek izveidots profils, konts, nokonfigurēts DB Mail tā, kā mēs to vēlējāmies.

Šajā brīdī jāspiež poga "Close", un ja ievadījāt visus datus pareizi, tad e-pastu sūtīšana no šī brīža ir iespējama! To var pārbaudīt šādi:
(Labā poga uz Database Mail un siežam "Send Test E-Mail"). Pēc pogas nospiešanas parādīsies formiņa, kurā jāievada e-pasta adrese, uz kuru sūtīt e-pastu. Ja šī pārbaude nostrādā, e-pasts ir nokonfigurēts pareizi!

Tas pats ar skriptiem
Visas iepriekšminētās darbības var izdarīt arī ar skriptu palīdzību. Patiesībā tas pat ir ērtāk, vienīgi jāatceras kuras procedūras msdb datu bāzē ko dara.
Iepriekšējos attēlos varēja redzēt, ko SSMS dara, lai veiktu darbības, ko mēs ar interfeisa palīdzību veicām. tas būtu:
* Jauns konts (msdb.dbo.sysmail_add_account_sp);
* Jauns profils (msdb.dbo.sysmail_add_profile_sp);
* Konta pievienošana profilam (msdb.dbo.sysmail_add_profileaccount_sp);
* Konta pievienošana profilam un tā padarīšana par noklusēto, publisko profilu (msdb.dbo.sysmail_add_principalprofile_sp);
* Konfigurācijas izmaiņas (Mēs gan neko nemainījām konfigurācijā, pieņemot, ka noklusētā ir vajadzīgā msdb.dbo.sysmail_configure_sp);
* Testa e-pasta nosūtīšana (msdb.dbo.sp_send_dbmail)

starp citu- visu procedūru saraksts atrodams šeit!

Ar skriptiem tas izskatītos šādi:
-- Izveido kontu
EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'MySMTPServerAccount',
    @description = 'SMTP serveris',
    @email_address = 'db_admins@my_domain.lv',
    @replyto_address = 'db_admins@my_domain.lv',
    @display_name = 'admins',
    @mailserver_name = 'smtp.my_domain.lv',
    @port = 25,
    @enable_ssl = 0
--    , @username = '' -- atkomentēt pēc vajadzības!!!
--    , @password = '' -- atkomentēt pēc vajadzības!!!
    ;

-- Izveido profilu
EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'MyTestProfile',
    @description = 'Profils testa nolūkiem. Šis profils būs publisks un noklusētais visiem lietotājiem, kam tiesības sūtīt e-pastu.';

-- Profilam pieliek kontu
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'MyTestProfile',
    @account_name = 'MySMTPServerAccount',
    @sequence_number = 1;

-- Padara profilu publisku un uzstāda kā noklusēto
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'MyTestProfile',
    @principal_id = 0,
    @is_default = 1 ;
Skirpts izdara tieši to pašu, kas iepriekš aprakstīts ar ekrānu palīdzību. Vēl atliek tikai pārliecināties, ka profils izveidots, ka konts izveidots un nosūtīt testa e-pastu:
SELECT * FROM msdb.dbo.sysmail_profile
SELECT * FROM msdb.dbo.sysmail_account

EXEC sp_send_dbmail
    @profile_name='MyTestProfile',
    @recipients='test_user@my_domain.lv',
    @subject='Testa ziņa',
    @body='Ja saņem, tad viss strādā'
Tātad- ideālā taciņa ir nostaigāta.. Tālāk derētu paskatīties tipiskās problēmas un kā tās labot.
Bet pirms tam vēl skripti konta un profila dzēšanai (pašam noder, jo šie piemēri tomēr der tikai ar pareizi saliktām vērtībām):
-- Dzēš kontu un profilu
EXECUTE msdb.dbo.sysmail_delete_account_sp
    @account_name = 'MySMTPServerAccount';
EXECUTE msdb.dbo.sysmail_delete_profile_sp
    @profile_name = 'MyTestProfile';

Nav komentāru:

Ierakstīt komentāru