PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Существует ли POP3 с авторизацией?


Существует ли POP3 с авторизацией?

Сообщений 1 страница 30 из 47

1

Здравствуйте!
Года четыре назад сделал прогу для приема и передачи файлов через вложения к письму(атачмент). Использовался общественный почтовый сервис.
Работала хорошо и без нареканий. Но на почтовике изменили аутентификацию и теперь надо использовать команды PureSMTP для отправки письма, а для получения PurePOP3 уже не работает.
Мне кажется это гдето на уровне аутентификации, но как прописать подключение по POP3 с подтверждением не знаю.
Нужно вытащить тело письма и файл-вложение.

Отредактировано greece (21.09.2015 01:18:13)

0

2

В хелп-доках на "PureBasic 5.21 LTS (Windows - x86)" нет получения почты - только отправка

нужно искать сторонние библиотеки

0

3

А какие это могут быть библиотеки?
Кто может в связи с новыми веяниями сотворить сборщик писем?

0

4

greece написал(а):

прогу для приема и передачи файлов через вложения к письму

Не лучше через FTP сервер?

0

5

https://yadi.sk/d/gefQVXrrjG2QE

две старенькие библиотеки с моего винта.
где брал - не помню.

посмотри - может подойдет.
в доках заявлен нужный тебе функционал

0

6

Спасибо за помощь.

Петр: Почта подразумевается публичная, чтобы можно было в ручную вытащить. FTP было бы лучше если не слабый интернет. Буду благодарен за консультацию, потому как сам с таким способом не работал (кроме этого возможны частые смены провайдера и соответственно о статичном IP речи не идет).

SadStar: Спасибо за библиотеку, но это опять пример отправки, а не ПОЛУЧЕНИЯ аттача. Кроме того у меня 4.51 версия и не знаю насколько корректно отрабатывает. :)

В моем коде похоже все умирает на этом фрагменте:

Procedure InbWork(Server.s, Port.l, User.s, Pwd.s) ; read mail

If PurePOP3_OpenPOP3Connection(Server, Port, User, Pwd) = #PurePOP3_Ok

    Debug "Connected"

0

7

Покопался и нашел интересный фрагмент

Select cmdID
                      Case "220"
                         If Len(username)>0
                            Send("Ehlo " + Hostname())
                            state=#eHlo
                         Else
                            send("HELO " + Hostname())
                            state=#MailFrom
                         EndIf   
                      Case "221"
                         send("[connection closed]")
                         state=#Complete
                         quit=1     
                      Case "235"
                         Send("MAIL FROM: <" + sender + ">")
                         state=#RcptTo
                       
                      Case "334"
                         If state=#RequestAuthentication
                            Send(Base64Encode(username))
                            state=#Username
                         EndIf
                         If state=#Username
                            Send(Base64Encode(password))
                            state=#Password
                         EndIf
   
                      Case "250"
                         Select state
                            Case #eHlo
                               send("AUTH LOGIN")
                               state=#RequestAuthentication     
                            Case #MailFrom   
                               Send("MAIL FROM: <" + sender + ">")
                               state=#RcptTo
                            Case #RcptTo
                               Send("RCPT TO: <" + recipient + ">")
                               state=#Data
                            Case #Data
                               Send("DATA")
                               state=#QUIT
                            Case #QUIT
                               Send("QUIT")
                         EndSelect

Но здесь не используетя библиотека и заточено для отправки файлов

Procedure Send(msg.s)
     Debug "> " + msg
    msg+crlf.s
    SendNetworkData(ConnectionID, @msg, Len(msg))
EndProcedure

Есть ли возможность использования примерно такого подхода для ПОЛУЧЕНИЯ письма и, самое главное, ВЛОЖЕНИЕ?

0

8

Виноват - запутался - не те файлы сбросил
См.там же - еще три файла с POP3.

0

9

Спасибо, скачал.

Но у меня Пурик 4.5 и он с такими либами не дружит. ))

Есть ли возможность описать все РОР команды загрузки аттача как в примере аутентификации с send?
У меня, к моему сожалению, ничего не получается.

Или может у кого завалялся код или утилитка простой передачи аттача на почту и его получения с сохранением.

Голова пухнет от этих безопасников, что они на почтовиках наворотили. Неделю сижу в их загибах разбираюсь. ((

------------------------
Раньше трава была зенелее и персоналка только Правец.  ;)

0

10

Еще один РОР нашел, автор Артём из несуществующего  http://feelzone.org.ua/. Вроде он в этот вопрос закапывался, но как его найти сейчас не знаю. :(

Procedure OpenPop(server.s,port)

Shared pop

If port=#Null
port=110
EndIf

pop=OpenNetworkConnection(server,port)

If pop=#Null
ProcedureReturn #False
EndIf

If pop=#True
ProcedureReturn #True
EndIf

EndProcedure

Procedure AutPop(login.s,pass.s)

If pop
userm=AllocateMemory(Len(login))
passw=AllocateMemory(Len(pass))
PokeS(userm,login)
PokeS(passw,pass)
SendNetworkData(pop,userm,Len(login))
SendNetworkData(pop,userm,Len(pass))
Else
ProcedureReturn #False
EndIf

EndProcedure

0

11

Пошарь в интернете
например
http://rutracker.org/forum/viewtopic.php?t=3232116
версия 4.51
в "Дополнительные библиотеки с функциями (Windows)"
есть "PurePOP3 - работа с POP3 почтовыми серверами."

0

12

Спасибо за ответ, но у меня именно такая версия пурика и библиотеки. Именно она не работает.

Однако комманда типа

Код:
ConnectionID = OpenNetworkConnection(IP$, Port)

и

Код:
ab.l= ReceiveNetworkData(ConnectionID, *Buffer , 10000)

отлично работают (читают хидеры писем), но я не знаю как с помощью них вытащить вложение. :(

Возможно есть кто поможет с использованием таких команд.  :stupor:

0

13

качнул 4.51
http://www.pbstartprog.narod.ru/portable/Porteble.html

там в комплекте - PurePOP3

проверил подключение -  работает ( реальные данные не покажу)

Код:
If PurePOP3_OpenPOP3Connection("192.168.0.2", 110, "user@maildomen", "Password")=#PurePOP3_Ok
  Debug "ОК"
  PurePOP3_ClosePOP3Connection()
Else
  Debug "Connection failed"
  Debug PurePOP3_GetLastServerMessage()

EndIf

0

14

Спасибо. У меня такая сборка и стоит. )

А с какой почтой вы работаете? Данные не обязательно показывать.... )

0

15

корпоративный сервер который виден из LAN по внутреннему адресу а из ИНета - по доменному имени

проверяю получение файлов - работает

Код:
exeFile$=ProgramFilename()
HomeFolder$=GetPathPart(exeFile$)
AttachmentsFolder$=HomeFolder$+"Attachments"
;--- проверить/создать папку для аттачмент-файлов
Result.q = FileSize(AttachmentsFolder$)
If Result=-1 ;file not found
	Debug "Не найдена папка <"+AttachmentsFolder$+">"
	Debug "Создаю папку <"+AttachmentsFolder$+">"
	Result = CreateDirectory(AttachmentsFolder$)
	If Result=0
    Debug "Облом"
    End
	EndIf
	Debug "Папка <"+AttachmentsFolder$+"> создана"
ElseIf Result=-2
	Debug "Папка <"+AttachmentsFolder$+"> обнаружена"
EndIf
;--- получить почту
If PurePOP3_OpenPOP3Connection("192.168.0.2", 110, "777@transbunker.ru", "P")=#PurePOP3_Ok
	Debug "POP3Connection ОК"
	nMessages.l=PurePOP3_CountMessages() 
	Debug "Message QTY = "+Str(nMessages)
	If nMessages>0
    For i=1 To nMessages
    	If PurePOP3_RetrieveMessage(i) > 0
        ;--- показать Инфо
        Info$=PurePOP3_GetMessageInfo()
        Debug "Message "+Str(i)+" info : "
        nDeviders.l = CountString(Info$, Chr(9))
        For n=1 To nDeviders+1
        	Debug " : " + StringField(Info$, n, Chr(9))
        Next n
        ;--- получить файлы
        If PurePOP3_SaveAttachementsToFile(AttachmentsFolder$)
        	Debug "Все файлы из письма сохранены в <"+AttachmentsFolder$+">"
        Else
        	Debug "Облом при сохранении файлов"
        EndIf
        
    	EndIf
    
    Next i
    
	EndIf
	
	
	
	
	PurePOP3_ClosePOP3Connection()
	Debug "POP3Connection closed"
Else
	Debug "Connection failed"
	Debug PurePOP3_GetLastServerMessage()
	
EndIf

http://s3.uploads.ru/t/hbZK7.png

0

16

Стандартный код по другому и не опишешь... :)

У вас скорее всего нормально, без паранойи настроен сервер почты, а у меня скорее всего проблема с самим провайдером прдоставляющим услуги емейла. Попрообовал с Яндексом тоже самое.
Буду искать нормальный паблик, без наворотов SSL TLS, autentification. :)

Еслибы были фиксед АйПи много проблем снялось бы, делал бы ФТП. А тут задача разползжихся неконтролируемо клиентов связать, одно только и известно что есть интернет. :)

0

17

Придумал такой вариант решения проблемы

Потестил из дома на POP3 - вроде письма считывает.

Если такого рода костыль устроит - можно доработать если будет косячить.

https://yadi.sk/d/RsyzTbp1joJh5

Краткое описалово

sslMailGate.exe is "local SSL-Mail-Gate by V.A.Sadonin aka SadStar"

Ранее назывался sslMailProxy.

Позволяет работать по SSL/TLS протоколу почтовым клиентским программа не поддерживающим этот протокол.
В частности - библиотеке PurePOP3.

Является промежуточным сервером, который
- устанавливает и поддерживает шифрованый канал связи с почтовым сервером,
- получает команды от почтового клиента и отправляет их на сервер в зашифрованом виде,
- получает ответы от сервера, расшифровывает их и отправляет клиенту.

Для связи с клиентом слушает заданный порт (default 110) на интерфейсе 127.0.0.1
SSL/TLS канал связи устанавливает с заданным почтовым сервером на заданный порт (default pop.mail.ru:995)

Настройки.
Можно задать следующие параметры
-имя почтового сервера и его порт (Server:RemotePort # default pop.mail.ru:995)
-локальный порт для работы с почтовым клиентом (LocalPort # default 110)
-писать ли лог-файл работы (Logging = 1/0 # default 0)
-макс.время простоя в течении которого не было команд от клиента (IdleTimeMax # default 10000 m/s)
При IdleTimeMax=0 слежение за временем простоя не ведется.
-скрывать ли консольное окно (WindowHide = 1/0 # default 0)
Помогает утранять проблемы со связью.

Процесс работы.
После запуска программа
-ищет файл sslMailGate.ini в папке старта.
Если находит - считывает параметры из раздела [Setting].
Пример
[Setting]
RemoteServer=pop.yandex.ru
RemotePort=995
LocalPort=110
IdleTimeMax=20000
WindowHide=1
Logging=1

-читает параметры из командной строки которые могут быть записаны так
/S:server:port /P:localPort /T:IdleTimeMax /H:WindowHide /L:Logging

-устанавливает шифрованый канал связи с почтовым сервером

-открывает на прием LocalPort

-ждет данных от клиента на порт LocalPort
Если данных от клиента нет более чем IdleTimeMax то программа закрывается.

При поступлении данных на LocalPort они пересылаются в шифрованый канал.
Ожидается ответ сервера который расшифровывается и пересылается клиенту.
Сбрасывается в ноль счетчик IdleTime.

И опять ждет данных от клиента

При поступлении команды QUIT протокола POP3 - сервер прекращает сеанс шифрованой связи.
Программа закрывается по ошибке "CryptPopData ERROR: Operation complete/can't continue".

Если WindowHide=0 то видно консольное окно и требуется нажать Enter чтобы закрыть его.
Пока не закрыто консольное окно можно посмотреть протокол обмена данными в этом окне.

Настройки клиента
У клиента нужно только вместо имени почтового сервера и его порта для протокола POP3 прописать 127.0.0.1 и LocalPort.
А имя почтового сервера и его порт для протокола SSL/TLS задать в настройках sslMailGate.

Применение.

Вариант - Запуск из программы на PureBasic
------------------------------------------------
nProgram=RunProgram("I:\PureBasic_Projects\sslMailGate\sslMailGate.exe","/T:10000 /L:1 /H:1","I:\PureBasic_Projects\sslMailGate\")

If nProgram=0
PrintN("Program I:\PureBasic_Projects\sslMailGate\sslMailGate.exe is not started")
Goto lblEnd
EndIf

Delay(2000)

;--- получить почту
If PurePOP3_OpenPOP3Connection("127.0.0.1", 110, "ss@mail.ru", "PassWord")=#PurePOP3_Ok
;
;работа с почтой
;
PurePOP3_ClosePOP3Connection() ; Здесь посылается команда QUIT
Else
PrintN("POP3Connection failed")
EndIf

lblEnd:

Print("Program terminated - press Enter >")
Input()
------------------------------------------------

Можно запускать sslMailGate.exe из бат-файла или командной строки а потом стартовать обмен у почтового клиента.

Best regards. SadStar.


0

18

Приношу извинения за долгое отсутствие. Благодарю,что не забыли про мою проблему.
Интересный закидон предлагаете...)) Потестил, все равно вешается.
Пообщался с техподдержкой, нагрузили они почту какой-то странной защитой. Не протоколов, а именно авторизации. Вручную не получается накодить подходящий алгоритм, но стандартные мелкософты подключаются. ((

Еще что-то странное с библиотекой SMTP у меня происходит,отрабатывает скомпилированный код раза четыре и все.. И особенно странно ведет себя передача файлов. Тоже глюк на глюке. Может версию стоит поменять? Только я не видел свежее 4.5 портейбл (мне особенно  удобно с ними работать). Может кто подскажет. Покупать не смогу, так как не часто использую. Но считаю пока самым удобным для "инструментальщика". За исключением создания диалогов. )))

0

19

С каким сервером работать пытаешься?
Попробую потестить.

0

20

Оказывается - опять изобрел велосипед.

https://www.stunnel.org/index.html - та же идея . Только реализована восемью годами ранее.

Пример использования в Пурике

http://www.purebasic.fr/english/viewtop … ht=stunnel

PS. Так что - "всё уже украдено до нас"

Отредактировано SadStar (21.10.2015 09:16:58)

+1

21

Спасибо, заработало. :)
Но для текущего проекта необходимо чтобы эта программа вызывалась из Access и ей передавались параметры в командной строке. И тут уже начался цирк. Все что работает само по себе или через батник, при вызове через Shell из Access прекращает работать. Хотя самое удивительное, что параметры принимаются верно (проверено MessageRequester).
Что делать в таких случаях? Компилировать в Консоль вроде не помогает, можете еще что присоветовать. Может новой версией откомпилировать? Но у меня сейчас нет, может скажете где скачать.
А то получается вся работа зазря, надо было один устаревший модуль на Дельфи заменить. Вот и дозаменялся....(((

Очень прошу помочь.

0

22

чтобы эта программа вызывалась из Access и ей передавались параметры в командной строке

"эта программа" - уточни о чем речь

0

23

Сорри, извинияюсь. Нервы. :)
"Эта программа" - программа передачи письма с аттачментом, сделаная на Пурике. Вот как раз она себя странно ведет при формировании строки и вызове ее из Access.

По коду уже можно судить о наступающей параноидальности. Не могу отловить ошибку. :(

Код программы
Код:
; отправка почты из коммандной строки
; send MailTo" "MailFrom" "SmtpPort" "Password" "Subj" "BodyText" "Attacment (все вводится через пробел или, если включить обработку, то запятую)
Global Dim PP.s(8)

If CountProgramParameters()
  
  ;MessageRequester("progrParam",Str(CountProgramParameters()))   ;подсчет количества параметров
  If CountProgramParameters()=0 
    Goto exxit
  EndIf

    For i=0 To CountProgramParameters()
                              ; PP(i+1)=ProgramParameter(i)
                              ;If ProgramParameter(i)                ; проверка на пустой параметр
                              ;  PP(i+1)="."
                              ;Else
                              ;If i=6
          PP(i+1)=ProgramParameter(i)                           ; упорядочивание в массив
                              ;  Else 
                              ;    Position = FindString(ProgramParameter(i), ",", 1)                                                            ; обработка запятой в строке (приклеивается в конце)
                              ;    PP(i+1)=Left(ProgramParameter(i),Position-1)   ;Len(ProgramParameter(i))-1);Position-1)   ; очистка от запятой
       ;MessageRequester("Programm Parametr","PP= "+PP(i+1)+Chr(10)+"Len= "+Str(Len(ProgramParameter(i)))+Chr(10)+"Mid= "+Str(Mid(ProgramParameter(i),1,Len(ProgramParameter(i))-1))
                              ;EndIf

    Next i

  MessageRequester("View debug", "PP1= "+PP(1)+Chr(10)+"PP2= "+PP(2)+Chr(10)+"PP3= "+PP(3)+Chr(10)+"PP4= "+PP(4)+Chr(10)+"PP5= "+PP(5)+Chr(10)+"PP6= "+PP(6)+Chr(10)+"PP7= "+PP(7)+Chr(10))
Position = FindString(PP(2), "@", 1)                             ; определение разделителя @

MeilTo.s=PP(1)                                                          ; На этот емейл отправляем письмо.
MeilSend.s=PP(2)                                                      ; С этого мыла отсылаем письмо.
Login.s=Left(PP(2),Position-1)                                     ; Логин мыла-отправителя письма.
MySMTPServer.s ="smtp."+Mid(PP(2),Position+1)         ; Сервер почты-отправителя письма.
MySMTPPort.l = Val(PP(3))                                          ;  25 порт или 587
Password.s=PP(4)                                                      ; Пароль мыла-отправителя письма.
MySubj.s=PP(5)                                                         ;Тема письма
MyTextMail.s=PP(6)                                                    ;Текст письма
SendFile.s=PP(7)                                                       ; Абсолютный путь к прикрепляемому файлу.

;MessageRequester("Result","SMTP="+MySMTPServer+Chr(10)+"Port="+Str(MySMTPPort)+Chr(10)+"To: "+MeilTo+Chr(10)+"From: "+MeilSend+Chr(10)+"Subj: "+MySubj+Chr(10)+"BodyText: "+MyTextMail+Chr(10)+"Login: "+Login+Chr(10)+"Password: "+Password+Chr(10)+"Attachment: "+SendFile)

Result = MessageRequester("Send Database Update","A you really SEND databaseUpdate to "+MeilTo+"?",#PB_MessageRequester_YesNo)     ; последнее китайское предупреждение.
If Result = #PB_MessageRequester_Yes       ; если Yes

If PureSMTP_OpenSMTPConnection(MySMTPServer, MySMTPPort) = #PureSMTP_Ok
        
        MessageRequester ("Connection.","Connection SUCCESS")

        PureSMTP_SetContentType("text/html; charset=windows-1251")
        Status.l = PureSMTP_SendMail(MeilTo, MeilSend, MySubj, MyTextMail, SendFile, Login, Password)

           If Status = #PureSMTP_Ok
             MessageRequester ("SUCCESS.","Mail succesfully Sent.")
           Else
            MessageRequester ("ERROR.","Mail NOT Sent."+ Chr(10)+"Wrong parameters."+ Chr(10)+PureSMTP_GetLastServerMessage())
          EndIf
        PureSMTP_CloseSMTPConnection()
    Else
        MessageRequester ("ERROR.","Connection Failed."+ Chr(10)+"Wrong SMTP server or port."+ Chr(10)+PureSMTP_GetLastServerMessage())
        ;Debug PureSMTP_GetLastServerMessage() ; ID ошибки.
    EndIf
  ElseIf Result = #PB_MessageRequester_No    ; если No 
EndIf
Else
exxit:  
  MessageRequester("ПОМОЩЬ.","Введите е-майл получателя, е-майл отправителя, порт SMTP, пароль отправителя, тему, текст и приложение письма.")     ;+Chr(10)+"В конце юбязательно ставьте запятую.")
EndIf

; IDE Options = PureBasic 4.51 (Windows - x86)
; CursorPosition = 40
; EnableXP
; UseIcon = mail.ico
; Executable = send.exe

А вызов формируется в Access таким образом

Код:
p1 = Forms("Form Trans").[subMailProfile].Form.Controls("MailTo").Value   
p2 = Forms("Form Trans").[subMailProfile].Form.Controls("MailFrom").Value 
p3 = Forms("Form Trans").[subMailProfile].Form.Controls("PortNum").Value 
p4 = Forms("Form Trans").[subMailProfile].Form.Controls("PasswNm").Value
p5 = Forms("Form Trans").[subMailProfile].Form.Controls("SubjNm").Value  
p6 = Forms("Form Trans").[subMailProfile].Form.Controls("BodyTxtNm").Value
p7 = Forms("Form Trans").[subMailProfile].Form.Controls("AttachNm").Value 
myPath = "C:\send.exe " & p1 & " " & p2 & " " & Str(p3) & " " & p4 & " " & p5 & " " & p6 & " " & p7  ' send  откомпилированный программа на PureBasic

Call Shell(myPath, 1)

И что за фигня происходит не пойму... (((

0

24

Сегодня, дальше больше..
Выдает не "ОК" при отправке, но письмо отправляется.

Код:
           If Status = #PureSMTP_Ok
             MessageRequester ("SUCCESS.","Mail succesfully Sent.")
           Else
            MessageRequester ("ERROR.","Mail NOT Sent."+ Chr(10)+"Wrong parameters.")
          EndIf

Ухожу в нирвану, перестаю что либо понимать. (( 
Толи  Аксесс что-то мудрит, толи у Пурика какойто бекдор... :)

0

25

Параметры командной строки должны быть в кавычках, иначе если в них окажется пробел, один параметр может быть разделен на несколько частей. А в тексте параметров кавычек не должно быть.

0

26

Строка формируется в VB Accessа, там это все слепляется через &. Дальше в кавычках идет пробел, в результате получается переменная и пробел ( разделитель для ProgramParameter).

При выполнении 

Код:
Status.l = PureSMTP_SendMail(MeilTo, MeilSend, MySubj, MyTextMail, SendFile, Login, Password)

он отрабатывает неизвестную ошибку, но письмо отправляется.
Где искать корни глюка? В Пурике (компиляторе или коде)? В Аксесе?

0

27

greece написал(а):

Строка формируется в VB Accessа, там это все слепляется через &

А в том что слепляется пробелов или кавычек нет?

0

28

Нет, проверяю выводом переменных. Кроме того, как то он же отправляет мыло на правильный адрес и все остальное правильно, только вылезает ошибка как писвл выше. ((

0

29

1. Если я правильно понял
-  SubjNm - тема письма - редко когда состоит из одного слова - т.е. там есть пробелы
-  BodyTxtNm - тело письма - редко когда состоит из одного слова - т.е. там есть пробелы

В результате второе слово из SubjNm в send.exe воспринимается как шестой параметр, третье слово - как 7-й.
Если SubjNm состоит из одного слова,
то второе слово из BodyTxtNm в send.exe воспринимается как 7-й параметр. И.т.д.

Как намекал Петр - правильнее сделать вызов так.

Код:
DKv=chr(34) ' код символа Двойная кавычка
DKv2=chr(34)&" "&chr(34) ' для уменьшения длины след.строки 
myPath = "C:\send.exe " & DKv & p1 & DKv2 & p2 & DKv2  & Str(p3) & DKv2  & p4 & DKv2  & p5 & DKv2 & p6 & DKv2 & p7 & DKv

ИМХО
Можно представить случай когда тема состоит из одного слова и тело состоит из одного слова - я думаю это должно формироваться автоматически.
У вас это вводит человек в экранную форму - вряд ли он обходится без пробелов.

P.S.
И не помешало бы в SubjNm и BodyTxtNm заменить двойные кавычки на одинарные перед формированием командной строки.

Отредактировано SadStar (24.10.2015 04:37:34)

0

30

Спасибо за ответы.

Строка у меня формируется в Аксесе, используется разделитель между параметрами пробел (" "). Все сложности с разным количеством слов и использование внутри параметра пробела, решаю подменой символом _ .

Код:
If KeyAscii = 32 Or KeyAscii = 46 Or KeyAscii = 44 Then KeyAscii = 95

Есть еще ограничения по длине передаваемого параметра, но это не критично при правильной передаче и приеме вложения. Это все делается перед передачей.

Когда строка уже сформирована Аксессом вызывается send.exe, вот он и отрабатывает передачу сообщения с выдачей ошибки, хотя в целевой почтовый ящик письмо приходит. Такое впечатление что PureSMTP_SendMail срабатывает два раза, не выходя из инициализации подключения. Первый раз - правильно, второй раз - с пустыми параметрами. Проверяю с помощью контроля трафика: сначала уходит нормальная посылка, затем выскакивает сообщение обработчика ошибки что письмо не отправлено. (((

Спасибо за замечания SadStar, но основной блок подготовки данных для отправки находится в Аксесе, PureBasic выполняет ТОЛЬКО функцию отправки и приема сообщений из ящика электронной почты.

П.Ы. Возможно в памяти дважды запускается процесс и там второй запущенный виснет пока не выполнится первый. После окончания работы первого образа программы запускается вторая, но уже с пустыми параметрами это и дает ошибку, хотя первый процесс выполняет все правильно. Это конечно моими вилами на воде... :)

Отредактировано greece (26.10.2015 14:21:03)

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Существует ли POP3 с авторизацией?