libcurl for Clarion
Добавлено: 31 Октябрь 2020, 12:22
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
Код: Выделить всё
TCurlMailClass.Reset PROCEDURE()
CODE
SELF.FreeRecipients()
SELF.FreeAttachments()
SELF.FreeCustomHeaders()
CLEAR(SELF.mailsubject)
CLEAR(SELF.mailbody)
CLEAR(SELF.mailaltbody)
SELF.bodyContentType = 'text/plain'
SELF.bodyCharset = 'UTF-8'
PARENT.Reset()
Код: Выделить всё
OF 'mail.volganet.ru'
curl.Server('mail.volganet.ru', 587)
curl.Account(EmailUser, EmailPsw)
curl.From(EmailFrom)
curl.AddRecipient('miasoft@mail.ru') ! CLIP(ppp:email)) !to/cc/bcc
curl.UseSSL(CURLUSESSL_ALL) ! <---- ???
curl.SetSSLVerifyPeer(FALSE) !curl --insecure !<---- ???
Код: Выделить всё
CASE LOWER(CLIP(EmailServer))
OF 'smtp.mail.ru' ! SSL - работает
curl.Server('smtp.mail.ru', EmailPort)
curl.Account(EmailUser, EmailPsw)
curl.From(EmailFrom)
curl.AddRecipient( CLIP(ppp:email)) !to/cc/bcc
curl.UseSSL(CURLUSESSL_ALL)
curl.SetSSLVerifyPeer(FALSE) !curl --insecure
OF 'smtp.gmail.com'
curl.Server('smtp.gmail.com', 587)
curl.Account(EmailUser, EmailPsw)
curl.From(EmailFrom)
curl.AddRecipient( CLIP(ppp:email)) !to/cc/bcc
curl.UseSSL(CURLUSESSL_ALL)
curl.SetSSLVerifyPeer(FALSE) !curl --insecure
OF 'smtp.yandex.ru' ! SSL - работает
curl.Server('smtp.yandex.ru', EmailPort)
curl.Account(EmailUser, EmailPsw)
curl.From(EmailFrom)
curl.AddRecipient( CLIP(ppp:email)) !to/cc/bcc
curl.UseSSL(CURLUSESSL_ALL)
curl.SetSSLVerifyPeer(FALSE) !curl --insecure
OF 'mail.volganet.ru' ! TLS - не работает
curl.Server('mail.volganet.ru', 587)
curl.Account(EmailUser, EmailPsw)
curl.From(EmailFrom)
curl.AddRecipient('mia@mail.ru') ! CLIP(ppp:email)) !to/cc/bcc
curl.UseSSL(CURLUSESSL_ALL)
curl.SetSSLVerifyPeer(FALSE) !curl --insecure
END
Glo:EmailMessageText='Обращение № '& ZVK:ID &'<13,10>'&|
'Дата: '&format(ZVK:DateZapoln,@d06.) &'<13,10>'&|
'Тема: '&clip(ZVK:Vid)&'<13,10>'&|
'Есть температура: '&CHOOSE(ZVK:IsT,'да','нет')&'<13,10>'&|
'ФИО: '&clip(ZVK:F)&' '&clip(ZVK:I)&' '&clip(ZVK:O)&'<13,10>'&|
'Д. рожд.: '&format(ZVK:GodRojd, @D06.) &'<13,10>'&|
'Город: '&clip(ZVK:City) &'<13,10>'&|
'Район: '&clip(ZVK:Raion)&'<13,10>'&|
'Улица: '&clip(ZVK:Street) &'<13,10>'&|
'Дом: '&CLIP(ZVK:Dom) &'<13,10>'&|
'кв.: '&CLIP(ZVK:kv) &'<13,10>'&|
'ТЕЛ.: '&CLIP(ZVK:Phone) &'<13,10>'&|
'Место работы: '&CLIP(ZVK:Work) &'<13,10>'&|
'Доп.сведения: '&CLIP(ZVK:Note) &'<13,10>'&|
'Отправлено: '&format(today(), @d06.)&' '& format(CLOCK(),@t1)
curl.Subject('CALL-центр: Обращение № '&ZVK:ID)
curl.Body(CLIP(Glo:EmailMessageText))
curl.AddAttachment(Fname)
!connection timeout (seconds)
curl.SetOpt(CURLOPT_CONNECTTIMEOUT, 130)
res = curl.Send()
Код: Выделить всё
curl.SetSSLVersion(CURL_SSLVERSION_TLSv1) !- или другая CURL_SSLVERSION_xxx константа
Код: Выделить всё
CURL_SSLVERSION_TLSv1 EQUATE(1) !/* TLS 1.x */
CURL_SSLVERSION_SSLv2 EQUATE(2)
CURL_SSLVERSION_SSLv3 EQUATE(3)
CURL_SSLVERSION_TLSv1_0 EQUATE(4)
CURL_SSLVERSION_TLSv1_1 EQUATE(5)
CURL_SSLVERSION_TLSv1_2 EQUATE(6)
CURL_SSLVERSION_TLSv1_3 EQUATE(7)
Код: Выделить всё
CURLOPT_TLSAUTH_USERNAME EQUATE(204 + CURLOPTTYPE_STRINGPOINT) !Set a username for authenticated TLS
CURLOPT_TLSAUTH_PASSWORD EQUATE(205 + CURLOPTTYPE_STRINGPOINT) !Set a password for authenticated TLS
CURLOPT_TLSAUTH_TYPE EQUATE(206 + CURLOPTTYPE_STRINGPOINT) !Set authentication type for authenticated TLS
Код: Выделить всё
Send::Morkovin PROCEDURE()
curl TCurlMailClass
res CURLcode
CODE
curl.Init()
! curl.SetDefaultProtocol('smtp')
curl.Server('mail.volganet.ru', 587)
curl.Account('md@volganet.ru', '12345')
curl.From('M.D. <md@volganet.ru>')
curl.AddRecipient('mia@mail.ru') !to/cc/bcc
curl.UseSSL(CURLUSESSL_ALL)
curl.SetSSLVersion(CURL_SSLVERSION_TLSv1)
curl.SetSSLVerifyPeer(FALSE) !curl --insecure
curl.SetSSLVerifyHost(FALSE) !curl --insecure
curl.Subject('TEST')
curl.Body('TEST')
res = curl.Send()
IF res = CURLE_OK
MESSAGE('Email sent', 'SendMail', ICON:Asterisk)
ELSE
MESSAGE('Send failed: '& curl.StrError(res), 'SendMail', ICON:Exclamation)
END
Попробовал. То же самое - долго висит, а потом та же ошибка