Spanish [B4A] [Tutorial] Ejemplo enviar Email con SMTP

JorgeMC

Member
Licensed User
Longtime User
Buenas tardes, hoy os traigo un ejemplo de como poder enviar un Email desde nuestro programa. El ejemplo de hoy es con una cuenta que configuremos nosotros, aun no he investigado como hacerlo desde la cuenta de GMail que tenga el movil y no se si es posible hacerlo de manera automática como en el ejemplo. Al curro:

Información Oficial sobre el objeto SMTP: http://www.basic4ppc.com/android/help/net.html#smtp

Para poder realizar el ejemplo, debemos de utilizar la librería llamada "Net library - Android FTP, SMTP and POP3", cuya última versión 1.20 la podeis descargar desde aqui:

Descargar Librería Net library - Android FTP, SMTP and POP3 v1.20

Para añadir o actualizar una librería tenéis este Tutorial:

[B4A] [Tutorial] Añadiendo / Actualizando Librerías a Basic4Android

Una vez tengamos la librería, la seleccionaremos desde la pestaña Libs:


8.png



Donde activaremos la librería llamada Net, con esto ya estamos listos para poder enviar desde nuestro programa un Email. Vamos con el código ahora:

B4X:
Sub Process_Globals
    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, "nuestracuentadecorreo@gmail.com", "nuestropassword", "SMTP")
        SMTP.UseSSL = True 'Esta linea la ponemos ya que Gmail requiere SSL
    End If
    SMTP.To.Add("correodelapersonaquequeremosenviar@ejemplo.com")
    SMTP.Subject = "Asunto del Email"
    SMTP.Body = "Cuerpo del mensaje."
    SMTP.AddAttachment(File.DirRootExternal, "elarchivoquequeremosadjuntar")
    SMTP.Send
End Sub

Sub SMTP_MessageSent(Success As Boolean)
    Log(Success)
    If Success Then
        ToastMessageShow("Mensaje enviado correctamente.", True)
    Else
        ToastMessageShow("Error al enviar mensaje.", True)
        Log(LastException.Message)
    End If
End Sub

Cambiando los datos y poniendo los nuestros, ya estaríamos listos para enviar correo desde nuestro programa.

Para el tema de adjuntar archivos, os pongo el enlace al Tutorial de Almacenamiento en Android, para saber las rutas de los mismos:

[B4A] [Tutorial] Almacenamiento en Android

Cualquier duda que tengáis ya sabéis, preguntar por aquí sobre este tema.

Tutorial realizado por JorgeMC para Historias de un Cazique y Basic4android (Basic for Android)
 
Last edited:

JorgeMC

Member
Licensed User
Longtime User
Ejemplo utilizando nuestra cuenta de Hotmail / Live

Mismo ejemplo del Tutorial pero utilizando nuestra cuenta de Hotmail / Live:

B4X:
Sub Process_Globals
    Dim SMTP As SMTP
End Sub

Sub Globals

End Sub

Sub Activity_Create(FirstTime As Boolean)
    If FirstTime Then
        SMTP.Initialize("smtp.live.com", 587, "Nuestra cuenta de correo de Hotmail (Incluyendo la @hotmail.com/.es o @live.com , etc.)", "nuestropassword", "SMTP")
        SMTP.UseSSL = True 'Esta linea la ponemos ya que Hotmail / Live requiere SSL
    End If
    SMTP.To.Add("correodelapersonaquequeremosenviar@ejemplo.com")
    SMTP.Subject = "Asunto del Email"
    SMTP.Body = "Cuerpo del mensaje."
    SMTP.AddAttachment(File.DirRootExternal, "elarchivoquequeremosadjuntar")
    SMTP.Send
End Sub

Sub SMTP_MessageSent(Success As Boolean)
    Log(Success)
    If Success Then
        ToastMessageShow("Mensaje enviado correctamente.", True)
    Else
        ToastMessageShow("Error al enviar mensaje.", True)
        Log(LastException.Message)
    End If
End Sub
 

JorgeMC

Member
Licensed User
Longtime User
Ejemplo utilizando nuestra cuenta de Yahoo

Mismo ejemplo del Tutorial pero utilizando nuestra cuenta de Yahoo:

B4X:
Sub Process_Globals
    Dim SMTP As SMTP
End Sub

Sub Globals

End Sub

Sub Activity_Create(FirstTime As Boolean)
    If FirstTime Then
        SMTP.Initialize("smtp.mail.yahoo.com", 587, "Nuestra cuenta de correo de Yahoo (Incluyendo la @yahoo.es/com)", "nuestropassword", "SMTP")
    End If
    SMTP.To.Add("correodelapersonaquequeremosenviar@ejemplo.com")
    SMTP.Subject = "Asunto del Email"
    SMTP.Body = "Cuerpo del mensaje."
    SMTP.AddAttachment(File.DirRootExternal, "elarchivoquequeremosadjuntar")
    SMTP.Send
End Sub

Sub SMTP_MessageSent(Success As Boolean)
    Log(Success)
    If Success Then
        ToastMessageShow("Mensaje enviado correctamente.", True)
    Else
        ToastMessageShow("Error al enviar mensaje.", True)
        Log(LastException.Message)
    End If
End Sub
 

jlbleiva

New Member
No hace envio mail a cuenta de hotmail

No entiendo, me manda los correos, pero si le pongo que lo mande un correo de hotmail, no lo hace, ni de gmail tampoco, por que??? Gracias
 
Top