I want to send email from my Android application so my code is
public class MainActivity extends Activity implements OnClickListener{
Session session=null;
ProgressDialog pdialog=null;
Context context=null;
EditText reciept=null;
EditText sub=null;
EditText msg=null;
String recpient=null;
String subject=null;
String textmessage=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=this;
Button login = (Button) findViewById(R.id.mBtnSubmit);
reciept=(EditText)findViewById(R.id.editText_to);
sub = (EditText) findViewById(R.id.editText_sub);
msg = (EditText) findViewById(R.id.editText_text);
login.setOnClickListener(this);
}
@Override
public void onClick(View v) {
recpient= reciept.getText().toString();
subject= sub.getText().toString();
textmessage= msg.getText().toString();
Properties props = new Properties();
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");
session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("abc@a.a", "password");
}
});
pdialog = ProgressDialog.show(context, "", "Sending Mail...",true);
RetreiveFeedTask task= new RetreiveFeedTask();
task.execute();
}
class RetreiveFeedTask extends AsyncTask<String, Void, String> {
protected String doInBackground(String... urls) {
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("abc@a.a"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recpient));
message.setSubject(subject);
message.setContent(textmessage, "text/html; charset=utf-8");
Transport.send(message);
}
catch (MessagingException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String feed) {
pdialog.dismiss();
reciept.setText("");
msg.setText("");
sub.setText("");
Toast.makeText(getApplicationContext(), "Message sent", Toast.LENGTH_LONG).show();
}
}
}
and i also attach jars like
activation.jar
additionnal.jar
mail.jar
android-support-v4.jar
when i run above code i gave me error like
02-18 16:16:05.242: W/System.err(3242): javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
02-18 16:16:05.242: W/System.err(3242): nested exception is:
02-18 16:16:05.242: W/System.err(3242): javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
02-18 16:16:05.242: W/System.err(3242): at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
02-18 16:16:05.242: W/System.err(3242): at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
02-18 16:16:05.242: W/System.err(3242): at javax.mail.Service.connect(Service.java:310)
02-18 16:16:05.242: W/System.err(3242): at javax.mail.Service.connect(Service.java:169)
02-18 16:16:05.242: W/System.err(3242): at javax.mail.Service.connect(Service.java:118)
02-18 16:16:05.242: W/System.err(3242): at javax.mail.Transport.send0(Transport.java:188)
How can I solve it?