Отправка e-mail из БП

Добрый день.

Пытаюсь из БП автоматически отправить письмо на электронную почту.

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

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

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

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

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

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

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

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