Hi Guys, Maybe you all are expert in terms of using RecyclerView in android. This blog is simple example for using filter option with RecyclerView adapter. As for now you will instantiate RecyclerView and set the adapter to RecyclerView as following way. RecyclerView list = (RecyclerView) findViewById(R.id.list); list.setLayoutManager(new LinearLayoutManager(this)); list.setHasFixedSize(true); ArrayList<Number> numbers = new ArrayList<>(); String ONEs[] = {"ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN"}; String TENs[] = {"ZERO", "TEN", "TWENTY", "THIRTY", "FOURTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY", "HUNDRED"}; String HUNDREDS[] = {"ZERO", "HUNDRED", "TWO HUND
We know, We can send an e-mail using Intents, This will invoke either default mail app or built-in device mail apps to send an e-mail. This is unnecessary for user to work on e-mail application while he is trying to work an our application. So the question is
how to send an e-mail from android application without user interaction?
Answer is you can achieve this using JavaMail API.
You have to use following three jars. Complete code:
MainActivity.java
activity_main.xml
Complete code as zip on GITHUB
I hope this post is useful. kindly share your feedback as comment here.
how to send an e-mail from android application without user interaction?
Answer is you can achieve this using JavaMail API.
You have to use following three jars. Complete code:
MainActivity.java
package com.exmple.javamail; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.io.UnsupportedEncodingException; 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.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class MainActivity extends Activity { private static String username = ""; private static String password = ""; private static String name = ""; private EditText mRecEmailEdit; private EditText mSubjectEdit; private EditText mMessageEdit; private EditText mNameEdit; private EditText mEmailEdit; private EditText mPasswordEdit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mNameEdit = (EditText) findViewById(R.id.sender_name); mEmailEdit = (EditText) findViewById(R.id.sender_email); mPasswordEdit = (EditText) findViewById(R.id.sender_password); mRecEmailEdit = (EditText) findViewById(R.id.email); mSubjectEdit = (EditText) findViewById(R.id.subject); mMessageEdit = (EditText) findViewById(R.id.message); Button sendButton = (Button) findViewById(R.id.send); sendButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { name = mNameEdit.getText().toString(); username = mEmailEdit.getText().toString(); password = mPasswordEdit.getText().toString(); String email = mRecEmailEdit.getText().toString(); String subject = mSubjectEdit.getText().toString(); String message = mMessageEdit.getText().toString(); sendMail(email, subject, message); } }); } private void sendMail(String email, String subject, String messageBody) { Session session = createSessionObject(); try { Message message = createMessage(email, subject, messageBody, session); new SendMailTask().execute(message); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } private Message createMessage(String email, String subject, String messageBody, Session session) throws MessagingException, UnsupportedEncodingException { Message message = new MimeMessage(session); message.setFrom(new InternetAddress(username, name)); message.addRecipient(Message.RecipientType.TO, new InternetAddress( email, email)); message.setSubject(subject); message.setText(messageBody); return message; } private Session createSessionObject() { Properties properties = new Properties(); properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.starttls.enable", "true"); properties.put("mail.smtp.host", "smtp.gmail.com"); properties.put("mail.smtp.port", "587"); return Session.getInstance(properties, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); } private class SendMailTask extends AsyncTask<Message, Void, Void> { private ProgressDialog progressDialog; @Override protected void onPreExecute() { super.onPreExecute(); progressDialog = ProgressDialog.show(MainActivity.this, "Please wait", "Sending mail", true, false); } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); progressDialog.dismiss(); } @Override protected Void doInBackground(Message... messages) { try { Transport.send(messages[0]); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "Mail sent successfully", Toast.LENGTH_LONG) .show(); } }); } catch (final MessagingException e) { e.printStackTrace(); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, e.getClass() + " : " + e.getMessage(), Toast.LENGTH_LONG).show(); } }); } return null; } } }
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/sender_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:ems="10" android:hint="your Name" android:inputType="textEmailAddress" /> <EditText android:id="@+id/sender_email" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/sender_name" android:ems="10" android:hint="your e-mail" android:inputType="textEmailAddress" /> <EditText android:id="@+id/sender_password" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/email" android:inputType="textPassword" android:layout_below="@+id/sender_email" android:hint="Your e-mail password" /> <EditText android:id="@+id/email" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/sender_password" android:ems="10" android:hint="reciever e-mail" android:inputType="textEmailAddress" /> <EditText android:id="@+id/subject" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/email" android:layout_below="@+id/email" android:hint="subject" /> <EditText android:id="@+id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/subject" android:ems="10" android:hint="message" android:inputType="textMultiLine" android:lines="5" /> <Button android:id="@+id/send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@+id/message" android:text="Send!" /> </RelativeLayout>
Complete code as zip on GITHUB
I hope this post is useful. kindly share your feedback as comment here.
Comments
Post a Comment