|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

23.- Enviar correos SMTP mediante Gmail. POP3
     - Librería Dialogs.

- Tutorial. Enviar correos mediante el SMTP de Gmail. POP3

- 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

 

______________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información