Здравствуйте!
3.4.0.117
Подскажите, пожалуйста, каким образом при отправке письма действием "Отправка E-mail" можно автоматически прикрепить файл.
З.Ы. ID файла хранится в параметре процесса.
Нравится
У меня на 3.3.2 отправка с вложением делалась так:
[javascript]
//сохраняем файл
var FileName = LoadFileFromDatabase(FileID, FileLink, true, true);
//цепляем во вложение
var Attachments = [FileName];
var IDs = new Array();
IDs.push(ID);
var MailParams = new Object();
MailParams.TemplateID = TemplateID;
MailParams.IDs = IDs;
MailParams.Attachments = Attachments;
var Service = Services.GetSingleItemByUSI('scr_MailUtils');
try {
Service.ScriptControl.CodeObject.SendEmailByTemplate(MailParams.TemplateID,
MailParams);
} catch (e) {
ShowErrorDialog("Ошибка при отправке сообщения. Проверьте настройки Outlook");
Log.write(2, e.message);
return;
};
[/javascript]
Где TemplateID - шаблон сообщения, FileLink - имя файла, которое будет во вложении.
Но это не из бизнес-процесса. Надо смотреть, как почта отправляется оттуда.
Спасибо, Александр!
Дело в том, что в версии 3.4.0 есть специальное действие для отправки E-mail сообщений и мне не хотелось бы использовать действие скрипт для решения задачи.
Здравствуйте, Геннадий!
В коробочной карточке действия "Отправка Email" присоединение файлов не предусмотрено.
Можно произвести программную доработку действия бизнес-процесса wa_SendEmail для реализации поддержки отправки файлов, однако это несколько сложнее, чем добавить скрипт к процессу. Поэтому важно оценить целесообразность и выбрать оптимальный вариант из двух.
Анна, можете добавить что-то к комментарию Александа (я имею ввиду программный код).
Геннадий, уточните, пожалуйста, что именно у Вас не получается, и какие комментарии Вы хотели бы получить?
Вот мой пример реализации отправки факсового сообщения через электронную почту средствами Oktell (из блога Виталия Ковалишина).
В этой функции прикрепляется файл изображения к письму и отправляется при помощи Outlook. Для увеличения быстродействия файл не сохраняется в БД. Пример упрощен для наглядности :smile: Версия Terrasoft 3.4.0.136.
[javascript]
function amiFaxOnExecute(ActionMenuItem, Sender) {
var FileName = System.CreateObject('TSObjectLibrary.Value');
var DialogCaption = "Выбор файла FAX";
var DefaultExt = '*.jpg';
var IMGFilter = "Файл изображения" + ' (*.jpg)|*.jpg|(*.tif)|*.tif|(*.bmp)|*.bmp';
if (!(System.OpenDialog(FileName, IMGFilter , DefaultExt, DialogCaption, EmptyStr))) {
return;
}
var FullName = FileName.Value; // Полный путь с именем файла и расширением
var ShortFileName = ExtractFileName(FullName); // имя файла с расширением
var EmailSubject = GetFieldValueFromDisabledField(Dataset,'PhoneNumber') // Тема письма (номер телефона)
var AddressList = new Array();
AddressList[0] = 'support@terrasoft.ua'; // Адрес получателя
var Body = 'Fax Message'; // Тело письма
var FileSystemObject = GetFileSystemObject();
var AttachList = new Array();
AttachList.push(FullName);
SendEmail({Body: Body, BodyFormat: 1, Attachments: AttachList, Subject: EmailSubject, Address: AddressList});
}
[/javascript]
Евгений, благодарю за интересную реализацию! Данное решение будет очень популярно - многие клиенты хотели бы настроить электронный документооборот таким образом :)