B4A Library New Net library - Android FTP, SMTP and POP3

Status
Not open for further replies.

Mikonios

Active Member
Licensed User
Longtime User
Hi,

I need capture FTP1.SendCommand("CD", DirFtp) response.

This code no work ::
B4X:
Sub FTP_CommandCompleted (ServerPath As String, Success As Boolean)
    If Not(Success) Then
        Log("SendCommandComplete failed : " & LastException)
        Csr.LogMemory1("   X02_MySndCmd   :: (Err)", "3")
        X55_SndMyFtpSale("    FTP_SendCommandComplete NoControlado")
    Else
        Log("SendCommandComplete Ok: ")
        X55_SndMyFtpSale("    FTP_SendCommandComplete Ok")
    End If
End Sub

And can't find xample documentation for FTP_CommandCompleted ::
((( https://www.b4x.com/android/help/net.html#ftp_sendcommand )))
SendCommand (Command As String, Parameters As String) Sends an FTP command.
The CommandCompleted event will be raised with the server reply. Should only be used with commands that return the reply in the command channel (not the data channel).
It is possible that Success will be false and LastException will not be initialized.

Anywhere can say me what´s correct sintax, or mode to get response, Pleased ??
 
Last edited:

Mikonios

Active Member
Licensed User
Longtime User
Ok, this is SOLUTION my problema :::

B4X:
Sub FTP_CommandCompleted (ServerPath As String, Success As Boolean, Folders() As FTPEntry, Files() As FTPEntry)
    If Not(Success) Then
        Log("SendCommandComplete failed : " & LastException)
        Csr.LogMemory1("   X02_MySmbPut.Upload    :: (Err)", "3")
        X55_SndMyFtpSale("    FTP_SendCommandComplete NoControlado")
    Else
        Log("SendCommandComplete Ok: ")
        X55_SndMyFtpSale("    FTP_SendCommandComplete Ok")
    End If   
End Sub
 

JohnC

Expert
Licensed User
Longtime User
I just verified (using android 5.0+ and this latest NET lib) that when a file is being transferred (uploading from device), the UI of my app hangs until the file is completed. I thought that the transfer is executed in a background thread, so why would it hang my apps' UI?
 
Last edited:

JohnC

Expert
Licensed User
Longtime User
Everything freezes.....the horizontal scrolling of a table, pressing buttons, everything.
 

DonManfred

Expert
Licensed User
Longtime User
Do you block the mainthread?
How does your code looks like?


This works for me without blocking anything

B4X:
    If FirstTime Then
        'FTP.Initialize("FTP", "hdro-die-schwarze-hand.de", 21, "w00d7468", "3BzsLDPeoWDJWCVn")
        FTP.Initialize("FTP", "host", 21, "user", "password")
    End If
   
    Dim flist As List = File.ListFiles(File.Combine(File.DirRootExternal,"Download"))
    Log(flist)
    Log(File.Combine(File.DirRootExternal,"Download"))
    FTP.UploadFile(File.Combine(File.DirRootExternal,"Download"),"test.iso",False, "/test.iso")
    'FTP.UploadFile(File.DirAssets,File.Combine(File.DirRootExternal,"Download/test.iso"),False, "/test.iso")
End Sub

Sub FTP_UploadProgress (ServerPath As String, TotalUploaded As Long, Total As Long)
  s = "Uploaded " & (TotalUploaded / 1024 / 1024) & "MB"
  If Total > 0 Then s = s & " out of " & (Total / 1024 / 1024) & "MB"
  If s.EqualsIgnoreCase(old) Then
    Else
        old = s
        Label1.Text = s
        Log(s)
    End If
End Sub
Sub FTP_UploadCompleted (ServerPath As String, Success As Boolean)
  Log(ServerPath & ", Success=" & Success)
  Label1.Text = "Upload (18mb) completed!"
    If Success = False Then Log(LastException.Message)
End Sub
 

JohnC

Expert
Licensed User
Longtime User
This is my upload progress event sub - it shouldn't hang anything:

B4X:
Sub FTP_UploadProgress (ServerPath As String, TotalUploaded As Long, Total As Long)
    Dim s As String
    s = "Uploaded " & Round(TotalUploaded / 1000) & "KB"
    If Total > 0 Then s = s & " out of " & Round(Total / 1000) & "KB"
    Log(s & "(" & ServerPath & ")")
End Sub
 

JohnC

Expert
Licensed User
Longtime User
Erel,

My client and I can reproduce this condition at will and on multiple devices (some android 5.0 the others 6.0).

I am using your latest "NET" lib (v1.62).

If this makes a difference, the FTP.Initialize line and it's event subs are in a service module because I need to have the FTP happen in the background while the user is using another activity.

How can I prevent an FTP transfer from locking the UI of another activity?
 

rtek1000

Active Member
Licensed User
Longtime User
Hello guys,

SMTP from Gmail is impossible now for me.

The response error received on log redirects to page treatment of incorrect/insecure login, and offers an alternative from page:
https://support.google.com/accounts/answer/6010255?hl=en

"some apps or devices that do not use modern security standards"

To turn more insecure this acount but yet can not send any e-mail.

I try both ways, TLS and SSL.

Can you post a functional sample, please?
 

rtek1000

Active Member
Licensed User
Longtime User
Hello again,

SMTP works fine now,
I made less secure options again:

https://www.google.com/settings/security/lesssecureapps

and I changed password too.

B4X:
Sub Send_Message(Msg1 As String)
   Dim SMTP1 As SMTP
   SMTP1.Initialize("smtp.gmail.com", 465, "user@gmail.com", "password", "smtpEventResponse")
   SMTP1.To.Add("user@gmail.com") 'change to real address
   SMTP1.Subject = "Test1"
   SMTP1.Body =  "123123123"
   SMTP1.UseSSL = True
   SMTP1.Send
End Sub
Sub smtpEventResponse_MessageSent(Success As Boolean)
   Log(Success)
   Log(LastException)
End Sub

Thank you.
 

rtek1000

Active Member
Licensed User
Longtime User
Hello,

It would be possible to reverse engineer the gmail app to see how it is modern authentication, or it is legally prevented?
 

Don Oso

Active Member
Licensed User
Longtime User
The SMTP always sends the AUTH command. Do you get any error in MessageSent event?

Yes I get errors when i try to send a message without AUTH or with empty values in user and password parameters . but i wonder maybe there another method to send messages without auth

I think that the best soluton here , its put authentication to the local SMTP server in my case.

thanks
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…