- Presentación.
SMTP es un protocolo para enviar correos a tu servidor.
POP es un protocolo para tomar los correos que están en tu servidor.
______________
1.- SMTP.
- Si tenemos una cuenta en Gmail, podemos enviar correos a través de esa cuenta mediante un programa en Basic4Android.
Código
|
La información sobre SMTP la podemos encontrar en la Guía oficial:
https://www.b4x.com/android/help/net.html#smtp
- Es necesario entrar en gmail y abrirse una cuenta gratuita.
- Gmail utiliza el puerto 465 para la comunicación por correo SMTP.
- Para que funcione es necesario la librería: Net library - Android FTP, SMTP and POP3
La librería la componen un par de archivos: Net.jar y Net.xml que se guardan en la carpeta:
C\Archivos de programa (x86)\Anywhere Software\Basic4Android\Libraries
Luego la marcamos en el programa...
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
Dim SMTP As SMTP
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
SMTP.Initialize("smtp.gmail.com", 465, "micorreodegmail@gmail.com", "micontraseñadegmail", "SMTP")
SMTP.UseSSL = True 'Gmail requires SSL.
End If
SMTP.To.Add("aquienleenvioelcorreo@loquesea.com")
SMTP.Subject = "Aquí pondremos el asunto"
SMTP.Body = "Aquí pondremos el cuerpo del mensaje"
' Si queremos adjuntar un archivo
' SMTP.AddAttachment(File.DirRootExternal, "somefile")
SMTP.Send
End Sub
Sub SMTP_MessageSent(Success As Boolean)
Log(Success)
If Success Then
ToastMessageShow("El mensaje se envío correctamente", True)
Else
ToastMessageShow("Error en el envío del mensaje", True)
Log(LastException.Message)
End If
End Sub
' Podemos mejorar el programa añadiendo EditText y Label y utilizar variables, para que podamos escribir textos, el correo a quién lo queremos enviar...
' Copiamos y pegamos este código y luego pulsamos el triángulo de ejecutar. Se enviará un mensaje a la cuenta: aquienleenvioelcorreo@loquesea.com
|
_____________________________________
2.- POP3
Mediante POP podemos capturar los correos de nuestro servidor.
En el foro bajamos la aplicación: MailParser.zip
Con ella podemos obtener los correos existentes en nuestro servidor de correo.
Modificamos la línea...
pop.Initialize("pop.gmail.com",995,"micuentadegmail@gmail.com","miclavedegmail","pop")
pop.Initialize("pop3.live.com",995,"micuentadehotmail@hotmail.com","miclavedehotmail","pop")
En la parte del Log obtenemos los correos.
- De gmail solo obtenemos el último correo.
- Se puede intentar poner como nombre de usuario recent:
pop.Initialize("pop.gmail.com",995,"recent:micuentadegmail@gmail.com","miclavedegmail","pop")
- Probar con otros servidores.
- Probar con un dispositivo real.
____________________________________________________________
3.- Ver un listado de los archivos que están en la carpeta File.
Dentro de cada carpeta de programa hay una subcarpeta llamada File, en ella suele estar el layout.bal, imagenes, sonidos...
Los archivos de esta carpeta son estáticos, es decir, los podemos introducir mientras realizamos el programa, pero cuando el programa está en funcionamiento no podemos crear ni manipular archivos en esa carpeta, es un directorio de solo lectura.
El directorio File, se representa en el código mediante: File.DirAssets
Para ver un listado de los archivos existentes en la carpeta Files mediante código podemos hacerlo así...
Dim Lista As List
Dim i As Int
Lista.Initialize
Lista.AddAll(File.ListFiles(File.DirAssets))
Msgbox("Archivos = " & Lista.Size, "")
For i = 0 To Lista.Size - 1
Msgbox(Lista.Get(i), "")
Next
___________________________
4.- Otra manera de ver un listado de archivos que están en la carpeta Files.
En este caso hace un listado de los archivos que extensión .txt que existen en esa carpeta.
|
' http://www.basic4ppc.com/forum/basic4android-updates-questions/20718-path-assetsdir-does-not-exist.html
'Read available files
Dim AllFiles As List
AllFiles.Initialize
AllFiles.AddAll(File.ListFiles(File.DirAssets))
Dim myDropDown As Spinner
myDropDown.Initialize("myDropDown")
Dim text As String
For I = 0 To AllFiles.Size -1
text = AllFiles.Get(I)
If text.IndexOf(".txt") > - 1 Then
myDropDown.Add(text)
End If
Next
'Let the user select a file
Dim cd As CustomDialog
cd.AddView(myDropDown, 0, 0, 300, 40)
cd.Show("DropDown Title", "OK", "Cancel", "", Null)
text = myDropDown.SelectedItem
End Sub
|
_____________________________
5.-
Mediante la librería Dialogs obtener un archivo.
En la librería Dialogs hay un programa llamado DialogsDemo, donde podemos ver las posibilidades de esta librería.
Si queremos elegir un archivo mediante esta librería, creamos esta código...
Debemos marcar la librería Dialogs.
Mediante la librería Dialogs podemos elegir archivos, colores, números,...
|
Sub btnFile_Click
Dim fd As FileDialog
fd.FastScroll = True
fd.FilePath = File.DirRootExternal ' also sets ChosenName to an emtpy string
'fd.ShowOnlyFolders = true
'fd.FileFilter = ".txt" ' for example or ".jpg,.png" for multiple file types
ret = fd.Show("B4A File Dialog", "Yes", "No", "Maybe", Bmp)
ToastMessageShow(ret & " : Path : " & fd.FilePath & CRLF & "File : " & fd.ChosenName, False)
End Sub
|
El directorio DirRootExternal se refiere a /mnt/sdcard de la tarjeta insertada en el móvil.
__________________________________
Si el correo no llega entonces Return To Sender
______________________________