Добрый день.
Пытаюсь из БП автоматически отправить письмо на электронную почту.
1. Создал системную настройку, в которой прописал e-mail получателя.
2. Синхронизировал учетную запись почты (тестовое письмо пришло).
3. Создал БП с действиями "Начало" - "Отправка E-mail" - "Конец".
4. В действии "Отправка E-mail" заполнил поля:
- От кого: [#Справочник.Настройки синхронизации с почтовым ящиком.ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ#].
- Кому: [#Системная настройка.Email ИЗ НАСТРОЙКИ#]
- Ну и собственно тело письма.
После сохранения запускаю БП, появляется иконка загрузки, пропадает, и ничего не происходит.
В чем может быть причина или что я делаю не так?
Нравится
Добрый день, посмотрите в журнале процессов выполнение вашего процесса
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, в интерфейсе должно меняться тут:
Зверев Александр,
Большое спасибо за ответ.
Проблема в том, что интерфейс настройки выглядит и под пользователем и под Супервизором следующим образом:
Посмотрел в базе, стоит 1
После того как перелогинился под пользователем и добавил почту заново, БП выполнился и письмо ушло.
Судя по пустой странице настроек, она по какой-то причине не загрузилась полностью. Возможно, в консоли браузера видно сообщение о причине.
По поводу поля в базе, нужно смотреть, как выполняется функция. Возможно, в выборке пусто после наложения фильтра по адресу, если он написан по-разному. А когда ввели заново, написали одинаково.