|
![]() |
#1 |
Участник
|
Пардон, не видел что меня спросили.
Отвечу расширенно, что бы максимально исключить лишние вопросы. Я сделал так: - В одной из настроечных таблиц создал BLOB поле, и импотировал туда библиотеку jMail.dll - создал codeunit, в тригере OnRun написал код, позволяющий импортировать/экспортировать dll Код: OnRun() // при прямом запуске можно вручную сделать импорт или экспорт jMail.dll MenuResalt := STRMENU('Import jMail.dll,Export jMail.dll', 1); Company.FIND('-'); CASE MenuResalt OF 1 : BEGIN FileNamejMail := Company."jMail.dll".IMPORT('jMail.dll', TRUE); IF FileNamejMail '' THEN BEGIN Company.MODIFY(TRUE); MESSAGE('Готово') END ELSE CLEAR(Company."jMail.dll") END; 2 : BEGIN Company.CALCFIELDS(Company."jMail.dll"); IF Company."jMail.dll".HASVALUE THEN Company."jMail.dll".EXPORT(FileNamejMail, TRUE) ELSE MESSAGE('Выгружать нечего, поле пустое... ') END; END; Код: NewMessage(FromName : Text[30];ToName : Text[30];CCName : Text[30];Subject : Text[60];Body : Text[255];AttachFileName : Text[255];ShowMessage :Boolean) : Boolean //NewMessage (FromName,ToName,CCName,Subject,Body,AttachFileName) IF ISCLEAR(MailClient) THEN IF NOT CREATE(MailClient) THEN IF NOT Install_jMail THEN ERROR('Не возможно установить компонент jMail.dll'); IF GUIALLOWED THEN BEGIN window.OPEN('#1###################\'+ 'Сервер #2############\'+ 'Юзер #3############'); window.UPDATE(1, Text001); window.UPDATE(2, SMTPServer); window.UPDATE(3, UserName); END; CREATE(Mail); Mail.Silent := TRUE; Mail.Logging := TRUE; Mail.Charset := 'windows-1251'; IF UserSetup.GET(USERID) AND (UserSetup."E-mail" '') THEN Mail.From := UserSetup."E-mail" ELSE Mail.From := ''; Mail.FromName := FromName; Mail.Subject := Subject; Mail.AddRecipient(ToName); IF CCName '' THEN Mail.AddRecipientCC(CCName); Mail.AppendText(Body); IF AttachFileName '' THEN Mail.AddAttachment(AttachFileName,FALSE); Mail.MailServerUserName := MailServerUserName; Mail.MailServerPassWord := Password; IF NOT Mail.Send(SMTPServer,FALSE) AND GUIALLOWED THEN MESSAGE(Mail.ErrorMessage()) ELSE CLEAR(Mail); IF GUIALLOWED THEN BEGIN window.CLOSE; IF ShowMessage THEN MESSAGE('Пользователю %1 отправлено письмо.\Тема письма:"%2"', ToName, Subject) END; Код: UserName Text 30 window Dialog MailClient Automation 'JMail 4.0 library'.Attachment Mail Automation 'JMail 4.0 library'.Message Filename Text 30 Company Record Company MenuResalt Integer FileNamejMail Text 250 WinPath Text 250 UserSetup Record User Setup Код: Install_jMail() : Boolean //Install_jMail Company.FIND('-'); Company.CALCFIELDS(Company."jMail.dll"); IF Company."jMail.dll".HASVALUE THEN BEGIN WinPath := FORMAT(ENVIRON('WINDIR')) + '\System32\jMail.dll'; Company."jMail.dll".EXPORT(WinPath, FALSE); IF SHELL(STRSUBSTNO('regsvr32 "%1"',WinPath)) = 0 THEN EXIT(TRUE) END; Ещё раз спасибо Forward за наводку на dll'ку Надеюсь кому-нибудь сгодится. |
|