Программно присоединить файл как вложение к e-mail

Здравствуйте,
можно ли программно присоединить к создаваемому по шаблону е-мэйлу файл, как вложение.

Е-мэйл создается с помощью стандартной ф-ии:
function SendEmailByAddress(MailUtils, TemplateFileName, Address, Subject) {
// by default 'false' means immediate message sending
// 'true' means putting message to 'Outbox' Outlook folders
var SendResult = MailUtils.SendMessage(TemplateFileName, Address,
Subject, false);
if (!SendResult) {
SendResult = false;
}
return SendResult;
}

Или может быть есть другие решения задачи?

Версия Terrasoft CRM 3.0.2.245 под Firebird.

Нравится

14 комментариев

Здравствуйте Юрий,
Попробуйте воспользоватся советама в теме http://www.community.terrasoft.com.ua/forum/topic/6788

Действительно в случае с MailUtils.SendMessage(.......) получилось прикрепить вложение, добавив параметр Attachments.

Еще вопрос можно ли аналогичное действие реализовать при создании е-мэйла через MailUtils.CreateMessage(TemplateFileName, MailAddress, MailSubject).
Просто подстановка еще одного параметра Attachments не проходит, выдается ошибка (насчет, количество параметров не соответствует).

Используйте из scr_MailUtils

function CreateEmptyMessageWithAttachments(MailAddress, MailSubject, BodyFormat,
	CodePage, Importance, Attachments)

Евгений,
к сожалению в этой версии (3.0.2.245) в scr_MailUtils функции CreateEmptyMessageWithAttachments нет.
Есть только:

function CreateEmptyMessage(MailAddress, MailSubject) {
	var MailUtils = GetMailUtils();
	MailUtils.CreateEmptyMessage(MailAddress, MailSubject);
}
 
function CreateMessageFromTemplate(TemplateFileName, MailAddress, MailSubject) {
	var MailUtils = GetMailUtils();
	MailUtils.CreateMessage(TemplateFileName, MailAddress, MailSubject);
}

Вы можете выложить Текст скрипта scr_MailUtils?

Да, выкладываю.

Выложите именно текст скрипта а не сам сервис (чуть внимательнее ;))

Выкладываю, текст скрипта

Добавьте в скрипт этот код

function CreateEmptyMessageWithAttachments(MailAddress, MailSubject, BodyFormat,
	CodePage, Importance, Attachments) {
	if (!GetCanCreateMessage(true)) {
		return;
	}
	var MailUtils = GetMailUtilsWithoutMacroses();
	if (IsEmptyValue(MailAddress)) {
        MailAddress = '';
	}
   	if (IsEmptyValue(MailSubject)) {
        MailSubject = '';
	}
	if (IsEmptyValue(BodyFormat)) {
        BodyFormat = 1;
	}
   	if (IsEmptyValue(CodePage)) {
        CodePage = '';
	}
   	if (IsEmptyValue(Importance)) {
        Importance = 1;
	}
	MailUtils.CreateEmptyMessage(MailAddress, MailSubject, BodyFormat,
		CodePage, Importance, Attachments);
}

А потом попробуйте его вызвать.
50/50 что заработает т.к. непонятна версия вашей библиотеки TSOutlookLibrary

Чем всё закончилось?

На вызов:
MailUtils.CreateEmptyMessage(MailAddress, MailSubject, BodyFormat, CodePage, Importance, Attachments);
появляется ошибка:
Недопустимое число аргументов или присвоение значения свойства.

Эх....
Похоже в вашей версии этого нет.

Да, видимо так.
Похоже это добавили начиная с версий 3.0.4.

Здравствуйте, Юрий!

Да, к сожалению функциональные возможности 3.0.2 довольно ограничены в сравнении с более поздними версиями.

Инна Безверхняя,
II линия службы поддержки Terrasoft

Показать все комментарии