Классика баз данных - статьи

       

Использование классов %Net.SMTP и %Net.POP3 для отправки и приема электронной почты.


С помощью классов %Net.SMTP и %Net.POP3 системной библиотеки %Net, поставляемой в стандартной конфигурации, можно реализовать функции отправки и приема электронных писем на базе СУБД Cache'.

В Листинге 2 приведена Cache'-программа, с помощью которой реализуется отправка электронного письма с прикрепленным графическим файлом (test.jpg) по протоколу SMTP.

Листинг 2.

set s=##class(%Net.SMTP).%New() set s.smtpserver="SMTP.mail.ru" set s.timezone="-0400" set m=##class(%Net.MailMessage).%New() set m.From="test@company.com" do m.To.Insert("receiver@another.com") set m.Subject="Sent by Cache'' mail" set m.Charset="iso-8859-1" do m.TextData.Write("This is the main body.") do m.TextData.Write($char(13,10)) do m.TextData.Write("This is the second line.") do m.TextData.Write($char(13,10)) set status=m.AttachFile("c:\winnt","test.jpg") set status=s.Send(m) do m.%Close() do s.%Close() quit

Класс %Net.SMTP поддерживает также отправку сборных (multi-part) электронных писем.

Для реализации функции приема электронных писем можно воспользоваться системным классом %Net.POP3. В листинге 3 приведен пример использования класса %Net.POP3.

Листинг 3.

new mailserver,status,from,to,date,subject,messagesize,m,hdrs,key,mailMsg set mailserver=##class(%Net.POP3).%New() set mailserver.AttachDir="d:\attach\" ; need terminating \ set mailserver.Debug=0 set mailserver.StoreAttachToFile=1 write !,"Calling Connect" set status=mailserver.Connect("moon.kinich.com","testjsl","jsltest") write !,"Calling FetchMessage" set status=mailserver.FetchMessage(13,.from,.to,.date, .subject,.messagesize,.hdrs,.mailMsg,0) write !,"from="_from write !,"to="_to write !,"date="_date write !,"subject="_subject write !,"messagesize="_messagesize write !,"Closing mailserver="_mailserver.%Close() write !,"Closing mailMsg="_mailMsg.%Close() quit



Содержание раздела