libcurl for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3711
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libcurl for Clarion

Сообщение Игорь Столяров » 03 Сентябрь 2018, 17:22

RaFaeL писал(а):
03 Сентябрь 2018, 16:11
Некий "отчет" из разных "блоков" как письмо сформировать нельзя независимо от библиотеки
Спасибо. Я понял... :( Это нужно ручками создавать HTML структуру с рисунками ...
Потому, что письма в HTML формате, в которых графика идёт в перемешку с текстом - создавать можно …

html.jpg
«V» значит Вендетта !

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 755
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libcurl for Clarion

Сообщение RaFaeL » 03 Сентябрь 2018, 18:22

В данном случае текст это часть HTML-структуры, а рисунок - тот самый inline image

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3711
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libcurl for Clarion

Сообщение Игорь Столяров » 03 Сентябрь 2018, 18:53

RaFaeL писал(а):
03 Сентябрь 2018, 18:22
В данном случае текст это часть HTML-структуры, а рисунок - тот самый inline image
Да, спасибо. Вроде бы стало светлее ...
С теорией конг-фу закончили, переходим к практике. :)
«V» значит Вендетта !

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3711
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libcurl for Clarion

Сообщение Игорь Столяров » 04 Сентябрь 2018, 9:31

Подскажите пожалуйста, а существует вообще какой-либо список типов файлов (расширений),
который допустим к вложению в тело HTML сообщения. Т.е. к которым применим метод Curl.AddEmbeddedImage() ?

Например, вложенные в HTML блок WMF файлы прекрасно показываются в Microsoft Outlook,
но не показывются в почтовых сервисах Yandex.ru, Mail.Ru и т.д. ...
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2102
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом » 04 Сентябрь 2018, 12:16

Вообще говоря, почтовая программа смотрит не на расширение файла, а на mime-тип; в TCurlMailClass файлам WMF присваивается тип 'application/x-msmetafile'.
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3711
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libcurl for Clarion

Сообщение Игорь Столяров » 04 Сентябрь 2018, 12:47

Дед Пахом писал(а):
04 Сентябрь 2018, 12:16
Вообще говоря, почтовая программа смотрит не на расширение файла, а на mime-тип; в TCurlMailClass файлам WMF присваивается тип 'application/x-msmetafile'.
OK ! Понял. :)
Переведём вопрос с бытового на профессиональный: существует ли какой-то общепринятый список MIME типов,
которые визуализируются почтовыми программами ?
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2102
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом » 04 Сентябрь 2018, 13:10

Игорь Столяров писал(а):
04 Сентябрь 2018, 12:47
существует ли какой-то общепринятый список MIME типов,
которые визуализируются почтовыми программами ?
Сам бы хотел знать. Искал - не нашёл.
С уважением, ДП

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2102
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом » 14 Сентябрь 2018, 1:11

Наконец удалось заставить работать SFTP с методом аутентификации "public key". Целый день угробил. Здесь опишу процесс на память.

В качестве SFTP сервера использую freeSSHd, генератор ключей PuTTYGen.
  • 1. PuTTYGen: RSA 2048 - сгенерировать ключ.
  • 2. Passphrase не заполнять - freeSSHd не любит ключи с паролем.
  • 3. Conversions > Export OpenSSH key, сохранить как e:\devtools\freeSSHd\PrivateKey.ppk.
  • 4. В FreeSSHDService.ini указать этот файл: RSAKeyPath=e:\devtools\freeSSHd\PrivateKey.ppk.
  • 5. Запустить freeSSHd, удостовериться на вкладке SSH, что RSA key в порядке (в противном случае будет написано "Failed to import key from file)".
  • 6. Создать пользователя mike c Authorization=Public key (SSH only), разрешить SFTP.
  • 7. Создать файл mike (имя пользователя, без расширения), скопировать в него Public key из окна PuTTYGen: e:\devtools\freeSSHd\mike.
  • 8. В libcurl следующий код (настройки SSH берём из таблицы Accounts, PRE(ACC)):

    Код: Выделить всё

    ssh               LIKE(TSSHSettings), PRE(ssh)
    
      !- default protocol (ftp/sftp), if not defined in url
      IF ACC:AuthMethod = CURLSSH_AUTH_NONE
        curl.SetDefaultProtocol('ftp')
      ELSE
        curl.SetDefaultProtocol('sftp')
      END
      
      !- port 
      IF ACC:Port
        curl.SetOpt(CURLOPT_PORT, ACC:Port)
      ELSIF NOT INSTRING(':', ACC:URL, 1, 1)
        IF ACC:AuthMethod = CURLSSH_AUTH_NONE
          curl.SetOpt(CURLOPT_PORT, 21) !ftp default port
        ELSE
          curl.SetOpt(CURLOPT_PORT, 22) !sftp default port
        END
      END
    
      !- user/pwd
      curl.SetUserPwd(ACC:UserId, ACC:UserPwd)
    
      !- SSH settings
      ssh.AuthMethod = ACC:AuthMethod
      ssh.KeyPassword = ACC:KeyPassword
      ssh.KnownHosts = ACC:KnownHosts
      ssh.PrivateKeyFile = ACC:PrivateKeyFile
      ssh.PublicKeyFile = ACC:PublicKeyFile
      ssh.PublicKeyMD5 = ACC:PublicKeyMD5   !aded in v1.37
    
      curl.SSHAuth(ssh)
    
    для авторизации методом PublicKey поля в Accounts заполнены так:

    Код: Выделить всё

    ACC:AuthMethod     = CURLSSH_AUTH_PUBLICKEY
    ACC:UserId             = 'mike'
    ACC:UserPwd          = ''      !не нужен в данном случае
    ACC:KeyPassword    = ''  !это та самая Passphrase
    ACC:PrivateKeyFile = 'e:\DevTools\freeSSHd\PrivateKey.ppk'
    ACC:PublicKeyFile  = 'e:\DevTools\freeSSHd\mike'
    
  • 9. Смотрим лог, убеждаемся, что работает:
    [14616] [libcurl] TEXT: Trying 192.168.1.33...
    [14616] [libcurl] TEXT: TCP_NODELAY set
    [14616] [libcurl] TEXT: Connected to 192.168.1.33 (192.168.1.33) port 22 (#0)
    [14616] [libcurl] TEXT: SSH MD5 fingerprint: cb41e224f048e963db28120b9a6d6ec7
    [14616] [libcurl] TEXT: SSH authentication methods available: password,gssapi-with-mic,publickey
    [14616] [libcurl] TEXT: Using SSH public key file 'e:\DevTools\freeSSHd\mike'
    [14616] [libcurl] TEXT: Using SSH private key file 'e:\DevTools\freeSSHd\PrivateKey.ppk'
    [14616] [libcurl] TEXT: Initialized SSH public key authentication
    [14616] [libcurl] TEXT: Authentication complete
    [14616] [libcurl] TEXT: Connection #0 to host 192.168.1.33 left intact
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3711
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libcurl for Clarion

Сообщение Игорь Столяров » 03 Октябрь 2018, 9:11

Дед Пахом писал(а):
14 Сентябрь 2018, 1:11
Наконец удалось заставить работать SFTP с методом аутентификации "public key"
Это круто ! Но вылетела вся работа с FTP ... :( Что-то вокруг SSHSettings - пытаюсь разобраться ...
Примеры из штатного комплекта поставки FTPManager - тоже не собираются. :(
Посмотрите пожалуйста ! Вы ведь быстрей разберёте проблему, чем я … ;)
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2102
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом » 03 Октябрь 2018, 10:00

Читайте документацию (она же README.md).
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3711
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libcurl for Clarion

Сообщение Игорь Столяров » 03 Октябрь 2018, 10:15

Дед Пахом писал(а):
03 Октябрь 2018, 10:00
Читайте документацию (она же README.md).
Всегда читаю ! :)
Ага ... А во всех примерах, структура SSHSettings объявлена не через базовый тип TSSHSettings, а простым описанием полей.
И понёсся разнобой ... Понял. Спасибо. :)
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2102
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом » 03 Октябрь 2018, 10:29

Обновил папку "Simple FTP Manager C10", спасибо за замечание.
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3711
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libcurl for Clarion

Сообщение Игорь Столяров » 03 Октябрь 2018, 10:39

Спасибо. Теперь пример собирается и работает.

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

Я (после Вашего тычка) сразу сделал объявление вот так и всё прекрасно заработало:

Код: Выделить всё

SSHSettings  GROUP(TSSHSettings),PRE(SSHSettings)
             END
Или я опять чего-то не понимаю ? ;)
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2102
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом » 03 Октябрь 2018, 10:50

Видимо, я предполагал размещать поля этой группы на окне, поэтому объявил явно. Исправлю.
С уважением, ДП

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 755
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libcurl for Clarion

Сообщение RaFaeL » 10 Октябрь 2018, 23:19

Игорь Столяров писал(а):
24 Август 2018, 12:10
С Контуром (Диадок) я пробовал работать. В принципе - подключиться получается, но там навёрнутые структуры данных ...
Сегодня прислали запрос на интеграцию с Диадоком, буду смотреть ))

Ответить