MS SQL Server Mail

6 отговора 343 прегледа
#1

MS SQL Server Mail

nqkoj polzwal li e uslugata na sql server za prashtane na mail ? pri towa bez da ima instaliran exchange server ?

ni shta!
Отговор
в отговор на Zod #2

Re: MS SQL Server Mail

Изглежда доста съм изостанал. За пръв път чувам SQL сървър да изпраща емейли. Да не би да са комбинирали апачето със оракъла и да има някъкъв нов хибрид апачооракъл SQL-майл сървър който освен дази данни, мейл сървър, принт сървър, гейм сървър да може и да приготвя кафе и лъска обувки. Страшно е напреднала техниката;)) давайте бързо линк откъде да си го дръпна такова чудо че и кафеварката ми се скапа.;)

Отговор
в отговор на ;) #3

Re: MS SQL Server Mail

werno 4e dosta si izostanal. az wse pak namerih kakwoto tyrseh i makar, 4e ne uspqh da podkarwam wgradenata mail usluga na sql server, wse pak uspqh da se dokopam do kod kojto prashta mail prez sql zaqwka w ms sql server:
***************
CREATE PROCEDURE [dbo].[sp_send_cdontsmail]
@From varchar(100),
@To varchar(100),
@Subject varchar(100),
@Body varchar(4000),
@CC varchar(100) = null,
@BCC varchar(100) = null,
@BodyFormat int = 0,
@MailFormat int = 0
AS
Declare @MailID int
Declare @hr int
EXEC @hr = sp_OACreate 'CDONTS.NewMail', @MailID OUT
EXEC @hr = sp_OASetProperty @MailID, 'From',@From
EXEC @hr = sp_OASetProperty @MailID, 'Body', @Body
EXEC @hr = sp_OASetProperty @MailID, 'BCC',@BCC
EXEC @hr = sp_OASetProperty @MailID, 'CC', @CC
EXEC @hr = sp_OASetProperty @MailID, 'Subject', @Subject
EXEC @hr = sp_OASetProperty @MailID, 'To', @To
EXEC @hr = sp_OASetProperty @MailID, 'BodyFormat', @BodyFormat
EXEC @hr = sp_OASetProperty @MailID, 'MailFormat', @MailFormat
EXEC @hr = sp_OAMethod @MailID, 'Send', NULL
EXEC @hr = sp_OADestroy @MailID
GO
*****

twa e koda na syhranena procedura, koqto na wsi4koto otgore prashta i maila w html format, za attachment ti go ostawqm za domashna rabota ;)
... aaa, da, izwikwa se taka:

exec sp_send_cdontsmail '[email protected]', '[email protected]', 'subject', 'body'

e, twa si e malko improwizaciq, shtoto sql server-a si ima mail usluga s powe4e wyzmovnosti kato primerno izprashtaneto na rezultat ot zaqwka na mail, ama s malko powe4e trud i taka move da postignesh syshtiq rezultat.
zatwa: powe4e 4eti i po-malko postwaj

ni shta!
Отговор
в отговор на Zod #4

Re: MS SQL Server Mail

Zdrasti :)


Za da izpratish mail s Ms SQL Server 2000 moje da probvash slednoto (koeto pri men raboti):
1. Pravene na Profili za e-mail accounts
2. Nastrojvane na sistemniq account ot kojto trygva SQL Server
3. Nastrojka na Ms SQL Srv. da polzva tozi profile ot 1)
4. Nastrojka na Ms SQL Server Agent
5. Startirane na Ms SQL Server Agent
6. Izprashtane na mail

-----------------------------
1. Control Panel | Mail --> trqbva da se dobavi profil (naprimer "Outlook", moje i veche da go ima)

2. Enterprise Manager
a) Desen buton v/u imeto na Servera ot dyrvoto
b) Properties | Security | Startup Service Account - izbira se This Account (primerno ImeNaKomputer\Administrator i posle parola, eventualno SQL Srv se restartira posle avtomatichno)

3. Enterprise Manager
a) desen buton na SQL Mail (namira se na dyrvoto Support Services | SQL Mail)
b) izbira se Properties
v) na Profile Name se pishe Outlook i buton Test (trqbva da dade Successful started and stopped MAPI session)

4. Enterprise Manager
a) desen buton na SQL Server Agent (namira se na dyrvoto Management | SQL Server Agent)
b) izbira se Properties
v) na Mail Session (Mail Profile) se izbira Outlook (moje i za nabludeni ot Mail client da se markira "Save copies of the sent messages in the "Sent Items folder"")

5. desen buton na SQL Server Agent | Start

6.
--xp_sendmail
EXEC xp_sendmail @recipients = 'isoft@dir.bg',
@query = 'SELECT top 2* FROM INFORMATION_SCHEMA.TABLES',
@subject = 'SQL Server Report156',
@message = 'The contents of INFORMATION_SCHEMA.TABLES:',
@attach_results = 'TRUE', @width = 250



Pozdravi :)

Отговор
в отговор на LQS #5

Re: MS SQL Server Mail

Е, и какво правите в крайна сметка: стартирате външна програма за да изпратите майл.

Отговор
в отговор на LQS #6

Re: MS SQL Server Mail

blagodarq!

ni shta!
Отговор
в отговор на ) #7

Re: MS SQL Server Mail

Е, и какво правите в крайна сметка: стартирате външна програма за да изпратите майл.
----------------------------------------------

Здравейте :)

Не разбирам какво искате да кажете.
За хубаво или за лошо Ms SQL Server може да изпраща mail.

Дали е "външна програма" или не, според мен в този случай не е толкова важно. По-важна е практическата употреба на тази възможност.
Ще се опитам да дам няколко примера, за евентуалното й използване.

Пример 1:
Направили сте база от данни и сте я инсталирали в 50 фирми. В някой от тези фирми няма DbAdmin, в други има, но той пък не е в час с логиката на Вашата база от данни, зает е с други неща и т.н.
За да сте спокоен, Вие предварително сте "казали" на Ms SQL Server да Ви изпраща mail (pager или SMS) съобщение когато:
а) дисковата квота за базата от данни или transaction log е станала твърде малко
б) когато са направени 3 опита за replication с друга база от данни и те са се провалили
в) когато записите в таблица X станат повече от 8 000 000
г) когато някой Job извършващ Backup на базата от данни не е минал успешно
накратко: mail може да ви се изпрати от някой Job или при Alert
Казано по друг начин: тази възможност (изпращане на mail) е добра, когато се налага Ms SQL Server да Ви информира за някакви събития (проблеми), възникнали по време на работата му.
------------------------

Пример 2:
Имате система за обслужване на оферти. Един предлага нещо, друг търси нещо.
В базата от данни "пристига" оферта. Логиката по която се оценява офертата е адски сложна и работи с огромно количество данни.
Ако някаква клиентска част (независимо в кой слой) се налага да оцени офертата ще има твърде много "разговори" (прехвърляне на данни) между клиентската част и Ms SQL Server което е бавно.
За да се ускори оценяването, то се прави изцяло на Ms SQL Server (примерно trigger). След проверка на данните от офертата, SQL Srv изпраща mail на кандидат купувача, който е заявил, че го интересува оферта със същите параметри.
Даже и да приемем, че вашата клиентска част извършва оценяването, то тя повече или по-малко ще ползва някаква "външна програма" за да изпрати mail на кандидат купувача (освен ако не сте си написали собствен Mail server)
------------------------

Пример 3:
Някой от чужбина чрез SWIFT захранва Вашата банкова сметка.
Банковия server след като прихване някакви такси и комисионни, изчисли някакви лихви и пресметне разни други работи Ви изпраща mail, че имате разполагаемост и може да черпите по едно малко :)


------------
Разбира се (освен в пример 1) със сигурност има и по-оптимални решения за изпращане на mail.
Да споменем само, че има и xp_ReadMail - процедура която позволява Ms SQL Server да чете и обработва поща, да я разпределя по разни таблици и т.н.

---------------------------------------------------------------------------------
Две думи за "Външна програма"
- "Разширените съхранени процедури (xp_....) позволяват на разработчиците да разширяват възможностите за програмиране, предоставени от T-SQL и да получат достъп до ресурси извън Ms SQL Server"
- "Може да се създават разширените съхранени процедури записани в DLL"
- "Опитът от програмирането показва, че там където кодът не печели от поделянето или не се използва често, той трябва да бъде отделен и изолиран"
- "Разширените съхранени процедури позволяват добавянето на нови възможности без да има опасност от разстройване на главното ядро на Ms SQL Server и без да се модифицира директно ядрото."

Поздрави :)

Отговор