Revista 100% Verde

Enviar correo internamente usando JavaMail API

Por Soloelectronicos @soloelectronico

En realidad no es demasiado difícil crear un aplicación capaz de enviar correos electrónicos usando el IDE de Android Studio .De hecho gracias al APi de Javmail podremos enviar e-mails sin utilizar la aplicación de correo electrónico que android incluye por defecto utilizando javamail API para crear nuestro propio email del remitente herramientas que enviará correo internamente.

Tenemos que seguir los pasos que se dan a continuación:

1. Descargar los archivos de biblioteca de api de java.

Tenemos que descargar tres librerías java:

Lo puede descargar de Clic aquí.

2 Ahora crear una app en Android studio

3-Ir a la carpeta del proyecto -> aplicación -> libs y agregue todos los archivos jar en libs ahora uno por uno, haga clic en biblioteca de archivos en la opción haga clic en Agregar como biblioteca en todos los archivos jar.

Enviar correo internamente usando JavaMail API

También puede Agregar biblioteca por otro camino, pero lo importante es que incluya esta tres librerías:

Ir a archivo > Proyecto estructura > seleccione aplicación> opción derecha haga clic en dependencias ahora haga clic en el botón de pulse(+) para agregar > seleccione dependencia de archivo> archivo seleccione Biblioteca > OK.

Enviar correo internamente usando JavaMail API

4. Ahora abrir el archivo manifest.xml y poner los permisos de internet.

Ahora busque manifiesto está buscando como.

4. Ahora abrael fichero activity_main.xml para crear el archivo de diseño agregar después de código.

5. Cree la clase de Asyntask para el envío de llamada correo API.

package com.sp.sendmailinternally;import android.app.ProgressDialog;import android.content.Context;import android.os.AsyncTask;import android.widget.Toast;import java.util.Properties;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/*** Created by ps205 on 3/1/17.*/public class SendMailAsynTask extends AsyncTask<Void, Void, Void> {//Declaring Variablesprivate Context context;private Session session;//Information to send emailprivate String email;private String subject;private String message;//Progressdialog to show while sending emailprivate ProgressDialog progressDialog;//Class Constructorpublic SendMailAsynTask(Context context, String email, String subject, String message) {//Initializing variablesthis.context = context;this.email = email;this.subject = subject;this.message = message; } @Overrideprotected void onPreExecute() {super.onPreExecute();//Showing progress dialog while sending emailprogressDialog = ProgressDialog.show(context, "Sending message", "Please wait...", false, false); } @Overrideprotected void onPostExecute(Void aVoid) {super.onPostExecute(aVoid);//Dismissing the progress dialogprogressDialog.dismiss();//Showing a success message Toast.makeText(context, "Message Sent", Toast.LENGTH_LONG).show(); } @Overrideprotected Void doInBackground(Void... params) {//Creating properties Properties props =new Properties();//Configuring properties for gmail//If you are not using gmail you may need to change the values props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "465");//Creating a new sessionsession = Session.getDefaultInstance(props,new javax.mail.Authenticator() {//Authenticating the passwordprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(Config.EMAIL, Config.PASSWORD); } });try {//Creating MimeMessage object MimeMessage mm =new MimeMessage(session);//Setting sender address mm.setFrom(new InternetAddress(Config.EMAIL));//Adding receiver mm.addRecipient(Message.RecipientType.TO, new InternetAddress(email));//Adding subject mm.setSubject(subject);//Adding message mm.setText(message);//Sending email Transport.send(mm); }catch (MessagingException e) { e.printStackTrace(); }return null; } }

6. Ahora abra MainActivity.java y agregue el siguiente código.

package com.sp.sendmailinternally;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends AppCompatActivity { EditTextedittext_recipient_id, edittext_subject, edittext_message; Buttonbtn_send_mail; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//initializr vista para encontar vista por idedittext_recipient_id = (EditText) findViewById(R.id.edittext_recipient_id);edittext_subject = (EditText) findViewById(R.id.edittext_subject);edittext_message = (EditText) findViewById(R.id.edittext_message);btn_send_mail = (Button) findViewById(R.id.btn_send_mail);//activar un listener onclick en un botonbtn_send_mail.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View view) {//get input data from view String mRecipientMail =edittext_recipient_id.getText().toString(); String mSubject =edittext_subject.getText().toString(); String mMessage =edittext_message.getText().toString();new SendMailAsynTask(MainActivity.this, mRecipientMail, mSubject, mMessage).execute();
//llama al contructor de send mail asyntask mediante el envio de un parametroperameter } }); } }

7. Ya puede construir y ejecutar la aplicación

Nota:- cuando ponga su id debe ser accesible acceso menos seguro aplicaciones .Para cambiar configuración para motivos de seguridad de correo vaya a cambiar la configuración y actiíela .

Enviar correo internamente usando JavaMail API

Por cierto todo el código esta disponible en descargar código fuente


Volver a la Portada de Logo Paperblog