Вопрос

Добрый день.
Пытаюсь из БП автоматически отправить письмо на электронную почту.
1. Создал системную настройку, в которой прописал e-mail получателя.
2. Синхронизировал учетную запись почты (тестовое письмо пришло).
3. Создал БП  с действиями "Начало" - "Отправка E-mail" - "Конец".

4. В действии "Отправка E-mail" заполнил поля: 
  - От кого: [#Справочник.Настройки синхронизации с почтовым ящиком.ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ#].

  - Кому: [#Системная настройка.Email ИЗ НАСТРОЙКИ#]
  - Ну и собственно тело письма.
После сохранения запускаю БП, появляется иконка загрузки, пропадает, и ничего не происходит.
В чем может быть причина или что я делаю не так?

У меня такой же вопрос

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

Добрый день, посмотрите в журнале процессов выполнение вашего процесса

Nastol Eugene,

Обнаружил ошибку:

Terrasoft.Mail.Sender.EmailException: Не разрешена отправка с почтового ящика ---> Terrasoft.Mail.Sender.EmailException: Не разрешена отправка с почтового ящика
   at Terrasoft.Mail.SmtpClient.CreateMailCredentialByAddress(String address)
   at Terrasoft.Mail.SmtpClient.CreateSmtp(String address)
   at Terrasoft.Mail.SmtpClient.Send(EmailMessage emailMessage)
   --- End of inner exception stack trace ---
   at Terrasoft.Mail.SmtpClient.Send(EmailMessage emailMessage)
   at Terrasoft.Core.Process.Configuration.SendEmailUserTask.InternalExecute(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessActivity.Execute(ProcessExecutingContext context)

Что это может значить? Пользователь имеет роль "Системный администратор", доступ к операциям имеет, при синхронизации почтового ящика - тестовое письмо пришло.
Из-под супервизора синхронизировал почту пользователя, выполнил БП - письмо отправилось и пришло.  

stique пишет:
Что это может значить?

В коде схемы SmtpClient  же видно, где выводит это сообщение:

private MailCredentials CreateMailCredentialByAddress(string address, bool ignoreRights = false) {
	var mailboxESQ = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "MailboxSyncSettings");
...
	EntitySchemaQueryColumn sendEmailsViaThisAccountColumn = mailboxESQ.AddColumn("SendEmailsViaThisAccount");
...
	IEntitySchemaQueryFilterItem senderEmailAddressFilter = mailboxESQ
		.CreateFilterWithParameters(FilterComparisonType.Equal, "SenderEmailAddress", address);
	mailboxESQ.Filters.Add(senderEmailAddressFilter);
...
	EntityCollection mailboxEntities = mailboxESQ.GetEntityCollection(_userConnection);
...
	Entity mailbox = mailboxEntities[0];
	if (!mailbox.GetTypedColumnValue<bool>(sendEmailsViaThisAccountColumn.Name)) {
		throw new Sender.EmailException("ErrorOnSend", NotAllowedSendingFromThisMailbox);
	}
...

Значит, у используемого ящика в свойствах не поставлена галочка разрешения отправки с него, в базе это поле SendEmailsViaThisAccount таблицы MailboxSyncSettings, в интерфейсе должно меняться тут:

 

scr_chapter_imap_synchronisation_edit_settings_page.png

Зверев Александр,

Большое спасибо за ответ.  
Проблема в том, что интерфейс настройки выглядит и под пользователем и под Супервизором следующим образом:

Посмотрел в базе, стоит 1

После того как перелогинился под пользователем и добавил почту заново, БП выполнился и письмо ушло.

Судя по пустой странице настроек, она по какой-то причине не загрузилась полностью. Возможно, в консоли браузера видно сообщение о причине.

По поводу поля в базе, нужно смотреть, как выполняется функция. Возможно, в выборке пусто после наложения фильтра по адресу, если он написан по-разному. А когда ввели заново, написали одинаково.

Зверев Александр,

Да, Вы правы. При попытке настроить добавленный почтовый ящик, в консоли спамит ошибка:

Вы можете подсказать, в БД можно как-нибудь настроить почтовый ящик как общий?

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Коллеги, добрый вечер!

Подскажите идеи пжлст для реализации следующей задачи:

в разделе Excel отчеты есть отчет. Его нужно отправлять каждый день по расписанию на определенный email.

 

Спасибо!)

У меня такой же вопрос

7 комментариев
Лучший ответ

Елена К пишет:
А немного поправив, это вы что примерно имеете ввиду

Пока не могу сказать точно. Эта задача у нас в проекте тоже стоит, но пока не запущена в анализ и разработку. Я просто описал направление решения. Возможно, в сентябре смогу рассказать детально

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

Насколько я понимаю раздел Excel отчеты это не базовый функционал?

Посмотрите как в вашем разделе происходит запуск формирования отчета (возможные варианты запск вэб сервера, запуск БП) Вам нужно создать новый БП который будет запсукатся по таймеру формировать отчет и отправлять по почте .

Отправка файлов в БП на этом форуме обсуждалась не раз и особой сложности не представляет.

По формированию вашего отчета подсказать затрудняюсь тк это или ваш кастомный раздел или вы ставили какое то приложение с маркетплэйса (возможно вам ктото дорабатывал систему). Если ставили какое то расширение для работы с отчетами укажите какое и ссылку на него иначе смотрите как у вас происходит формирование отчета, скорее всего этот процесс можно автоматизировать!

Григорий Чех,

Григорий, это приложение https://marketplace.terrasoft.ru/app/excel-reports-builder-bpmonline, выпущенное Terrasoft. При запуске  созданного в  разделе "Excel отчеты" отчета происходит скачивание файла Excel. У нас вопрос как через БП сгенерировать cамо вложение, а там дальше мы с ним уже разберемся). Спасибо!

 

Елена К,

Мы, например, используем другое дополнение -

https://marketplace.terrasoft.ua/app/reports-generator-bpmonline

И там отчеты, скорее всего сохраняются, так как, в результате генерируется ссылка в уведомлениях, и только оттуда их можно скачать.

Кроме того, в том же дополнении есть процесс запуска генерации отчета по расписанию ("Запуск формирования отчета по правилу"). Немного поправив его, можно файл не сохранять на диске сервера (как в оригинале), а прикреплять к письму, например

Владимир Соколов,

Владимир, да , это приложение тоже стоит, просто меньше используется, чем первое.  А немного поправив, это вы что примерно имеете ввиду?). 

Елена К пишет:
А немного поправив, это вы что примерно имеете ввиду

Пока не могу сказать точно. Эта задача у нас в проекте тоже стоит, но пока не запущена в анализ и разработку. Я просто описал направление решения. Возможно, в сентябре смогу рассказать детально

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

Елена К,

Судя по принскрину приведенному Владимиру,вы можете например создать активность с типом исходящее письмо и отчет не записывать на диск а прикреплять к этой активности и отправлять ее (Как отправлять письмо с вложениями неоднократно в этом форуме обсуждалось)

Коллеги, спасибо! будем пробовать.Как получиться, поделимся).

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день!

Подскажите пожалуйста, каким образом можно настроить автоматический ответ на письмо, как в Outlook? Например: на любое входящее сообщение CRM должна отсылать шаблонный ответ "Письмо получено. Спасибо за обращение."

У меня такой же вопрос

1 комментарий
Лучший ответ

Письмо єто активность с типом Emailте как вариант создать БП со стартовым сигналом слушающим добавление входящего Email и использовать элемент БП Отправить письмо для формирования ответа

Письмо єто активность с типом Emailте как вариант создать БП со стартовым сигналом слушающим добавление входящего Email и использовать элемент БП Отправить письмо для формирования ответа

Войдите или зарегистрируйтесь, чтобы комментировать
Идея

Добрый день, коллеги

Я из бизнес-процесса отправляю email по шаблону. Шаблон в справочник добавила. В шаблон передаю Id обращения и в конечном итоге на почту получаю письмо, которое в себе содержит определенные данные обращения (номер, ответственный, контакт\контрагент и тд).

Подскажите, а могу ли я как-то в шаблон отправить данные с детали (например, Жизненный цикл обращения)?

Обсуждение
1 комментарий

Здравствуйте, Елена!

В текущей реализации приложения bpm'online нет возможности вывести в шаблон значение из связанного объекта (детали) или агрегирующие значения. Я зафиксировал и передал Ваше пожелание аналитикам продукта. Они рассмотрят возможность реализации в будущих версиях программного продукта.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Всем привет!

Сегодня хочу поделить настройки Terrasoft для использования нескольких учетных записей в Outlook.
Для чего это нужно?

Например, Вы работаете с личной почтой, но рассылку от компании Вам необходимо выполнить от корпоративной учетной записи.

Таким образом, перед рассылкой, стоит лишь изменить учетную запись по умолчанию и рассылка пойдет как надо.

Но бывает, что данные действия всё равно не приводят к желаемому результату, тогда открываем TS Admin и находим сервис scr_OutlookUtils.

В нем находим функцию CreateNewOutlookMessageByCopy и меняем ее на следующую:

function CreateNewOutlookMessageByCopy(FileName) {
         var Message;
         if (FileName) {
                   if ((GetOutlookVersion() == '11.0') || (GetOutlookVersion() == '12.0')) {
                            Message = Outlook.Application.CreateItemFromTemplate(FileName);
                            RemoveOutlookMessageProperties(Message);
                   } else {
                            TemplateMessage = Outlook.Application.CreateItemFromTemplate(FileName);
                            RemoveOutlookMessageProperties(TemplateMessage);
                            Message = Outlook.Application.CreateItem(0);
                            if (TemplateMessage.SendUsingAccount != null) {
                                      Message.SendUsingAccount = TemplateMessage.SendUsingAccount;
                            }
                           
                            RemoveOutlookMessageProperties(Message);
                            Message.InternetCodepage = TemplateMessage.InternetCodepage;
                            Message.Subject = TemplateMessage.Subject;
                            Message.BodyFormat = TemplateMessage.BodyFormat;
                       var NewMailItemBodyFormat = GetMailItemBodyFormat(Message);
                       var MessageText;
         
                            if ((NewMailItemBodyFormat  == olFormatHTML) ||
                                      (NewMailItemBodyFormat  == olFormatRichText)) {
                                      MessageText = GetMailItemBody(TemplateMessage);
                                      if (GetMailItemBodyFormat(TemplateMessage) == olFormatPlain) {
                                        MessageText = PreparePlainTextForHTML(MessageText, true);
                                      }
                            } else {
                                      MessageText = TemplateMessage.Body;
                            }
         
                            CopyAttachments(TemplateMessage, Message, false, Log);
                            SetMailItemBody(Message, MessageText);
                           
                            var Recipient;
                            var SourceRecipient;
                            for (var i = 1; i TemplateMessage.Recipients.Count; i++) {
                                      SourceRecipient = TemplateMessage.Recipients.Item(i);
                                      Recipient = null;
                                      if ((!IsEmptyValue(SourceRecipient.EntryID)) &&
                                               (SourceRecipient.AddressEntry.Type != 'EX')) {
                         Recipient = Message.Recipients.Add(SourceRecipient.Address +
                                                        ' + SourceRecipient.Name + '>');
                                      } else {
                         Recipient = Message.Recipients.Add(SourceRecipient.Name);
                         if ((!Recipient.Resolve()) && (!IsEmptyValue(SourceRecipient.EntryID))) {
                            Recipient.AddressEntry = SourceRecipient.AddressEntry;
                         }
                                      }
                                      Recipient.Type = TemplateMessage.Recipients.Item(i).Type;
                            }
         
                            TemplateMessage.Delete();
                   }
         } else {
                   GetOutlookCodePageOut();
                   Message = Outlook.Application.CreateItem(0);
                   if (Outlook.CodePageOut) {
                            Message.InternetCodepage = Outlook.CodePageOut;
                   } else {
                            Message.InternetCodepage = 20866;
                   }
         }
         return Message;
}

Сохраняем сервис, перезапускаем Terrasoft и проверяем отправку писем.

Приятной работы!

С уважением,
Белецкий Арсений
Группа компаний Terrasoft

У меня такой же вопрос

2 комментария

Арсений,
возможно ли использование нескольких учетных записей для отправки e-mail из BPMOnline CRM?
Как они настраиваются?

Анна, приветствую!

На текущий момент, такой возможности нет, поскольку отправка писем настраивается в системных настройках через один сервере, но данная реализация уже запланирована на будущие версии.

Возможно, в версии продукта 5.5 данная возможность уже будет.

С уважением,
Белецкий Арсений
Группа компаний Terrasoft

Войдите или зарегистрируйтесь, чтобы комментировать