The plugin allows to organize E-Mail exchange in the program. Incoming E-Mail messages may be processed via Message Queue. Outgoing E-Mails are edited in processes.
The plugin has to be enabled in configuration.
Configuration parameters.
# areas to search recipient’s addresses in message editor, other possible values: users
#email:recipients.search.area=process,executors,process_customers
The following configuration has to be added to message types. Better to keep it there rather than in plugin’s include, because message type IDs are unique for the whole system.
Configuration pattern:
messageType.<id>.title=<title>
messageType.<id>.class=MessageTypeEmail
messageType.<id>.email=<email>
messageType.<id>.host=<host>
messageType.<id>.login=<login>
messageType.<id>.pswd=<pswd>
messageType.<id>.folderIn=<inFolder>
# если не указан - CRM_PROCESSED
#messageType.<id>.folderProcessed=<processedFolder>
# если не указан - CRM_SKIPPED
#messageType.<id>.folderSkipped=<skippedFolder>
# если не указан - CRM_SENT
#messageType.<id>.folderSent=<sentFolder>
# если не указан - Trash
#messageType.<id>.folderTrash=<trashFolder>
# IMAP SSL
#messageType.<id>.store=imaps
# порт, если не указано - 143 для IMAP, 993 для IMAP SSL
#messageType.<id>.port=
# отладка почтового обмена IMAP и SMTP
#messageType.<id>.debug=1
# параметры SMTP, добавляются идентично опциям из основной конфигурации после префикса messageType.<id>.
# do not make read all process related messages
#messageType.<id>.processed.read=0
# JEXL expression for generation signature text
#messageType.<id>.sign.expression=<signExpression>
# отключение стандартной подписи, что сообщение отправлено BGERP
#messageType.<id>.sign.standard=0
# иной адрес отправителя письма
messageType.<id>.from=<from>
# адрес для ответов в письме
messageType.<id>.replayTo=<replayTo>
Входящие сообщения считываются с EMail ящика по протоколу IMAP. Сообщения считываются из папки <inFolder>. Параметры подключения IMAP задаются параметрами <host>, <login>, <pswd>. После разбора текста сообщений и вложений сообщение перемещается в <processedFolder>, при возникновении ошибок - в <skippedFolder>.
<email> подставляется в поле отправителя исходящего письма. Поля <from> и <replayTo> используются в случае необходимости в момент отправки подставить в поле "От" (From) иной адрес и "Ответить на" (Replay-To).
<signExpression> - JEXL выражение, определяющее подпись письма при отправке его через данный тип сообщения.
Отправка исходящих сообщений осуществляется через протокол SMTP, параметры настраиваются для каждого типа отдельно аналогично основной конфигурации (см. пример).
Полученные по E-Mail уведомления о новых сообщениях процесса могут быть использованы для быстрого ответа на них. Для этого в тему уведомлений добавляется маркер QA:код сообщения. Быстрый ответ может быть произведён на любой тип сообщения и идентичен написанию ответа из интерфейса BGERP. Пользователь идентифицируется по EMail, сохранённому в параметре типа EMail, код которого указывается в опции quickAnswerEmailParamId типа сообщения.
На адрес, с которого было отправлено уведомление, должен быть настроен тип сообщения с конфигурацией.
messageType.<id>.title=Наименование
messageType.<id>.class=MessageTypeEmail
...
messageType.<id>.quickAnswerEmailParamId=21
Для создания новых процессов из всех полученных E-Mail в конфигурации типа сообщения добавить:
messageType.<id>.autoCreateProcess.typeId=<typeId>
messageType.<id>.autoCreateProcess.notification=1
messageType.<id>.autoCreateProcess.notification.text.message=Dear customer, your request has been registered
Где <typeId> - код типа процесса.
Нешифрованные протоколы IMAP и SMTP.
messageType.1.title=billing@bitel.ru
messageType.1.class=MessageTypeEmail
messageType.1.email=billing@bitel.ru
messageType.1.host=imap.ufamail.ru
messageType.1.login=billing@bitel.ru
messageType.1.pswd=*****
messageType.1.folderIn=INBOX
messageType.1.folderProcessed=INBOX.CRM_PROCESSED
messageType.1.folderSkipped=INBOX.CRM_SKIPPED
messageType.1.folderSent=INBOX.CRM_SENT
messageType.1.signExpression=<<END
sign = NEW_LINE + user.getTitle() + NEW_LINE + "Служба технической поддержки" + NEW_LINE;
sign += "ОАО \"Инет\"" + NEW_LINE + "тел. 2232333" + NEW_LINE + "email. mastea@inet.ru" + NEW_LINE;
END
messageType.1.mail.transport.protocol=smtp
messageType.1.mail.smtp.user=billing@inet.ru
messageType.1.mail.smtp.host=smtp.ufamail.ru
messageType.1.mail.smtp.pswd=******
IMAP и SMTP через SSL, подключены режимы поиска. 21 - код параметра пользователя EMail. 17 - код параметра контрагента EMail.
signBms=NEW_LINE + "С уважением, команда Бител" + NEW_LINE + "email. crm@bitel.ru" + NEW_LINE
messageType.3.title=info@bgcrm.ru
messageType.3.class=MessageTypeEmail
messageType.3.store=imaps
messageType.3.email=info@bgcrm.ru
messageType.3.host=imap.yandex.com
messageType.3.login=info@bgcrm.ru
messageType.3.pswd=*****
messageType.3.folderIn=INBOX
messageType.3.folderProcessed=CRM_PROCESSED
messageType.3.folderSkipped=CRM_SKIPPED
messageType.3.folderSent=CRM_SENT
messageType.3.folderTrash=trash
messageType.3.signExpression={@signBms}
messageType.3.quickAnswerEmailParamId=21
messageType.3.search.1.title=Авто по EMail
messageType.3.search.1.class=MessageTypeSearchEmail
messageType.3.search.2.title=Контрагент по названию
messageType.3.search.2.class=MessageTypeSearchCustomerByTitle
messageType.3.search.3.title=Договор по параметру EMail
messageType.3.search.3.class=BGBillingMessageTypeSearchEmail
messageType.3.search.3.billingId=bitel
messageType.3.search.3.paramIds=7
messageType.3.saver.class=MessageTypeContactSaverEmail
messageType.3.saver.paramId=17
messageType.3.mail.transport.protocol=smtps
messageType.3.mail.smtp.user=info@bgcrm.ru
messageType.3.mail.smtp.host=smtp.yandex.com
messageType.3.mail.smtp.pswd=*****
IMAP и SMTP через SSL.
Для получения пароля к приложению включите двухфакторную авторизацию и сгенерируйте пароль согласно инструкции: https://support.google.com/accounts/answer/185833 Либо с выключенной двухэтапной аутентификацией используйте пароль от учётной записи( Аккаунт - Безопасность - Вход в аккаунт Google ), также должен быть включен меннее защищённый доступ приложениям ( Аккаунт - Безопасность - Ненадёжные приложения, у которых есть доступ к аккаунту )
messageType.5.title=bgerpp@gmail.com
messageType.5.class=MessageTypeEmail
messageType.5.store=imaps
messageType.5.email=bgerpp@gmail.com
messageType.5.host=imap.gmail.com
messageType.5.login=bgerpp@gmail.com
messageType.5.pswd=*****
messageType.5.folderIn=INBOX
messageType.5.folderProcessed=INBOX.CRM_PROCESSED
messageType.5.folderSkipped=INBOX.CRM_SKIPPED
messageType.5.folderSent=INBOX.CRM_SENT
messageType.5.folderTrash=[Gmail]/Bin
messageType.5.mail.transport.protocol=smtps
messageType.5.mail.smtp.user=bgerpp@gmail.com
messageType.5.mail.smtp.host=smtp.gmail.com
messageType.5.mail.smtp.pswd=****
Plugin can send E-Mail notifications about process related updates:
changes of process status or executors list;
new incoming process messages, notification email subject contains in this case Quick Answer identifier;
paid process invoices.
These mails are sent to process executor users, excluding ones, performed the update.
The feature can be enabled in process type configuration.
email:change.notification.user.email.param=<paramId>
Where <paramId> can be 0 for selecting first user parameter with type email or point to a definite user param ID.
Links for opening processes are built from configuration parameters.
Email can be sent using simple processor, here is the sample of configuration.
onProcessEvent.1.events=statusChanged
onProcessEvent.1.doExpression=<<END
text = process.getDescription();
email.sendMessageToUsers({1}, 0, "Changed process status", text);
END
Object email of class org.bgerp.plugin.msg.email.ExpressionObject with API methods is provide by the plugin.
On the screen below is seen E-Mail editor in process Messages tab.
The feature has a separated permission Plugin E-Mail / Search recipients. |
During message editing recipient addresses might be chooses over parameter values with type email.
Areas where recipients are searched are defined in configuration. Possible values:
process - current process;
executors - current process executors;
process_customers - customers, linked to current process;
users - all the users in the system.
In drop-down Attach history may be chosen the following options:
Exchange with the address;
All messages.
For both modes for each sent message has attached a file named History.txt
, containing exchange with:
used E-Mail address
all message history for second case
For the second mode in message signature also added process link to open interface, case it is configured.