Способы отправки почты¶
Данный раздел предназначен для описания настройки способа отправки файла по указанному адресу. Настройка способа отправки состоит из следующего:
-
Код – уникальный в пределах почтовой системы набор символов, идентифицирующий данный способ отправки.
-
Наименование – наименование (описание) способа отправки.
-
Алгоритм отправки почты – метод класса, который занимается, собственно, отправкой файла.
Правила написания метода отправки почты:
-
Метод класса.
-
Входные параметры:
- Имя файла, который надо отправить.
- Адрес (из настроек участника почты), по которому нужно отправить файл.
- Ссылка на глобаль с письмом.
- Ссылка на инверсию с адресами (кому надо отправить файл этим способом).
- Передаваемый параметр – текст сообщения об ошибке.
-
Выход:
- 1 – письмо отправлено.
- 0 – при отправке была ошибка.
Существующие способы отправки (под файлом понимается созданный экспортом файл):
1. E-Mail – электронная почта¶
E-Mail – электронная почта, прикреплённый файл (метод User.MailSendType.SendForEMail).
Для этого способа адресом является составное значение:
<E-Mail адрес получателя>#<заголовок письма>#<имя почтового сервера Sender>
Отправляется письмо с прикреплённым файлом. Аналогичен способу с кодом SenderOffline, который предпочтителен для отправки писем с прикреплёнными файлами (см. пункт №3).
2. File – на носителе информации¶
File – на носителе информации (дискета …) (метод User.MailSendType.SendForFile).
Адресом является полный путь к файлу (для внутрисистемной почты в адресе нужно указать только полную директорию с последним символом «обратная косая черта» «\», а в поле Алгоритм получения адреса указать метод User.MailParticipant.SysMailFileName).
Данный способ копирует файл по указанному в адресе пути.
3. SenderOffline – по UUCP через Sender¶
SenderOffline – по UUCP через Sender (метод User.MailSendType.ForSender).
Адресом является составное значение:
<E-Mail адрес получателя>#<заголовок письма>#<имя почтового сервера Sender>#<Новое имя для приаттаченного файла>
При описании адреса необходимо помнить, что в нём не должно быть пробелов, и каждый элемент адреса в отдельности не должен содержать знак «решётка» «#». Также следует помнить, что заголовок письма используется для служебных целей – по нему в pack.bat-файле определяется, что нужно предварительно сделать с прикреплённым файлом, например, добавить в архив. Для внутрисистемной почты в качестве заголовка следует указывать Escape.
Новое имя можно не указывать и в то же время его можно определить динамически, явно указав его в @mail@("Client",получатель,"FileName")=новое имя. Если новое имя файла не указано, то автоматически создается новое имя в формате для внутрисистемной почты.
Данный способ копирует данные из «файла» в директорию C:\Sender\Post\MMDDNNNN\
(для отправки каждого из файлов создается своя директория C:\Sender\Post\MMDDNNNN
, где MM – месяц, DD – день, NNNN – порядковый № директории за этот день), а затем дает команду Sender на отправку нового файла.
Внимание
При использовании этого способа отправки должна быть создана директория C:\Sender\Post
4. ForNotTlf – для не телефонизированных аптек¶
ForNotTlf – для не телефонизированных аптек (метод User.MailSendType.ForNotTlf).
В качестве адреса указывается устройство, куда будет заархивирован файл без указания имени файла (например, A:\
или C:\arj\
). Собственно, имя файла подставляется автоматически в формате внутрисистемной почты.
Принцип работы: данные из файла копируются в файл C:\mail\temp\arj\имя_файла_в_формате_внутрисистемной_почты
. Полученный файл перемещается с одновременным архивированием в директорию C:\mail\temp\Код_подразделения\имя_файла_в_формате_внутрисистемной_почты
. Далее из вышеуказанной директории все файлы, которые там лежат, перемещаются на устройство, указанное в поле Адрес. (Устройство находится на клиенте!)
Если одно и то же письмо отправляется одновременно нескольким получателям – выдается запрос типа Подготовьте дискету для клиента …. Если один из файлов не вмещается на указанное устройство – выдается запрос типа Вставьте следующую дискету.
Внимание
Для использования этого способа должна быть создана директория C:\mail\temp
и в директории C:\Sender
должен находиться файл arj.exe
5. ForNotTlfPostPone – отложенная почта для не телефонизированных аптек¶
ForNotTlfPostPone – отложенная почта для не телефонизированных аптек (метод User.MailSendType.ForNotTlfPostPone).
Для этого способа все аналогично способу, описанному в пункте №4, за исключением того, что архивированные файлы не переносятся на устройство, а остаются лежать в директории C:\mail\temp\Код_подразделения\имя_файла_в_формате_внутрисистемной_почты
.
6. SendForSupplier – электронная почта (E-Mail) файл в теле письма¶
SendForSupplier – электронная почта (E-Mail) файл в теле письма (метод User.MailSendType.SendForSupplier).
Для этого способа адресом является составное значение:
<E-Mail адрес получателя>#<заголовок письма>#<имя почтового сервера Sender>
Принцип работы: из письма определяется новое имя файла @mail@("Client",кому,"FileName"), файл копируется в директорию C:\Sender\Post\MMDDNNNN
(для отправки каждого из файлов создается своя директория C:\Sender\Post\MMDDNNNN
, где MM – месяц, DD – день, NNNN – порядковый № директории за этот день) и в первые строки этого нового файла вписывается адрес получателя, имя почтового сервера Sender и заголовок письма. Далее этот файл переносится в директорию C:\Sender\Ready\Out\
Внимание
Для использования этого способа отправки должны существовать директории C:\Sender\Post\
и C:\Sender\Ready\Out\
. Следует помнить, что данные и заголовок в файле (а значит и в письме) будут в кодовой странице «Windows–1251».
7. TCPMail – почтовый обмен Cache-Cache по TCP¶
TCPMail – почтовый обмен Cache-Cache по TCP (метод User.MailSendType.SendForTCP).
Способ отличается улучшенной надёжностью (в том числе реализована «докачка при обрыве», а также полный внутренний контроль многофайловой передачи) и рекомендуется для использования вместо других способов (кроме файла на дискете), но имеет ограничения в применении:
-
Данный способ применим только для внутрисистемной почты (между внутренними контрагентами, то есть подразделениями одной организации).
-
Работа ведётся только с выходом в сеть интернет (нельзя использовать при прямом телефонном соединении «модем-модем» то есть без интернета).
-
Те абоненты, на которых работает Сервер почты Cache-Cache, должны иметь постоянный внешний IP-адрес или DNS-имя.
Примечание
Абоненты, на которых работает лишь Клиент почты Cache-Cache могут иметь любой выход в интернет.
Данный способ не использует вспомогательных (внешних по отношению к Cache) программ (не используется Sender или какой-либо ещё почтовый клиент).
В каждом подразделении, использующем этот способ, должна быть активной стандартная автозадача Сервер для почты Cache-Cache или Клиент для почты Cache-Cache (в некоторых случаях можно активировать сразу обе, см. Структурные ограничения почтового обмена, подпункт Ограничения для протокола TCPMail).
На вкладке Работа с пакетами в Журнале почтовых сообщений нужно указать директорию для выкладывания принятых файлов (должна соответствовать директории, указанной в настройках приёма внутрисистемной почты).
Для этого способа адресом является составное значение, различное для клиента и для сервера:
-
Для клиента:
<внешний_IP_или_DNS_адрес_сервера_почты_Cache-Cache>#<TCP_порт_сервера_почты_Cache-Cache>
(по умолчанию 6511)#<таймаут_ожидания_ответа_от_сервера>
(по умолчанию 180 сек. – может пригодиться для подстройки при плохой связи)#<периодичность_проверки_почты_на_сервере_если_нечего_отправлять>
(по умолчанию 600 сек). См. также примечание на странице Структурные ограничения почтового обмена для случая, когда в одном подразделении работает и сервер и клиент. -
Для сервера:
<TCP_порт>
(по умолчанию 6511). Для контроля почтовых пакетов почты TCPMail в экранной форме Журнал почтовых сообщений имеется специальная вкладка Работа с пакетами.
8. FTPInner – По ФТП средствами базы¶
FTPInner – По ФТП средствами базы (метод User.MailSendType.FTPFromCache «Имя файла для экспорта системной почты»).
Способ отличается наивысшей надёжностью и рекомендуется для использования вместо других способов. Данный способ имеет некоторые особенности в применении:
- Если в интерфейсе Участники почтового обмена указан Метод получения адреса, то конечный файл получает имя, которое присваивает этот метод.
- Если указан какой-то из способов архивации, то расширение конечного архивного файла будет соответствовать выбранному архиву (.arj, .zip или .7z). Внутри архива будет находиться исходный файл со своим именем. Подробнее о выборе метода архивации см. на странице Редактирование записи участников почтового обмена.
- В момент передачи файла на FTP-сервер его расширение будет изменено на .tmp, и только по окончании выгрузки файл на FTP-сервере будет переименован (расширение .tmp будет изменено на расширение конечного файла).
Данный способ не использует вспомогательных (внешних по отношению к Cache) программ (не используется Sender или какой-либо ещё почтовый клиент).
Для этого способа адресом является составное значение, вводимое во вспомогательном окне Настройки почты по FTP протоколу, подробное описание см. на странице Редактирование записи участников почтового обмена.