Пардон, не видел что меня спросили.
Отвечу расширенно, что бы максимально исключить лишние вопросы.
Я сделал так:
- В одной из настроечных таблиц создал 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
Код:
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
И последняя функция, в этом кодюните производит выгрузку dll на машину пользователя и её регистрацию
Код:
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'ку
Надеюсь кому-нибудь сгодится.