0

I have made one application that sends mail in background. When i am using gmail account as a sender account, it is working perfectly. but when i am using microsoft exchange account and have set host and port according microsoft account but still it shows errors like in logcat. i am following this link

I have searched this many times couldn't get any solution,

Code for sending Mail:

_host = webmail1.xyz.com; // default smtp server 
_port = 443; // default smtp port 
_sport = 443; // Security port


Properties props = _setProperties(); 

Session session = Session.getInstance(props, this); 

      MimeMessage msg = new MimeMessage(session); 

      msg.setFrom(new InternetAddress(_from)); 

      InternetAddress[] addressTo = new InternetAddress[_to.length]; 
      for (int i = 0; i < _to.length; i++)
      { 
        addressTo[i] = new InternetAddress(_to[i].trim()); 
      } 
        msg.setRecipients(MimeMessage.RecipientType.TO, addressTo); 

      msg.setSubject(_subject); 
      msg.setSentDate(new Date()); 

      // setup message body 
      BodyPart messageBodyPart = new MimeBodyPart(); 
      messageBodyPart.setText(_body); 
      _multipart.addBodyPart(messageBodyPart); 

      // Put parts in message 
      msg.setContent(_multipart); 

      // send email 

      Transport.send(msg); 

 private Properties _setProperties() 
 { 
Properties props = new Properties(); 

props.put("mail.smtp.host", _host); 

if(_debuggable) { 
  props.put("mail.debug", "true"); 
} 

if(_auth) { 
  props.put("mail.smtp.auth", "true"); 
} 

props.put("mail.smtp.port", _port); 
props.put("mail.smtp.starttls.enable","true");

props.put("mail.smtp.socketFactory.port", _sport); 
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
props.put("mail.smtp.socketFactory.fallback", "true");

return props; 
}

Logcat:

02-11 18:10:51.170: W/System.err(2130): javax.mail.MessagingException: Could not connect to SMTP host: webmail1.xyz.com, port: 443;
02-11 18:10:51.170: W/System.err(2130):   nested exception is:
02-11 18:10:51.170: W/System.err(2130):     javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
02-11 18:10:51.170: W/System.err(2130):     at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
02-11 18:10:51.170: W/System.err(2130):     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
02-11 18:10:51.170: W/System.err(2130):     at javax.mail.Service.connect(Service.java:310)
02-11 18:10:51.170: W/System.err(2130):     at javax.mail.Service.connect(Service.java:169)
02-11 18:10:51.170: W/System.err(2130):     at javax.mail.Service.connect(Service.java:118)
02-11 18:10:51.170: W/System.err(2130):     at javax.mail.Transport.send0(Transport.java:188)
02-11 18:10:51.170: W/System.err(2130):     at javax.mail.Transport.send(Transport.java:118)
02-11 18:10:51.170: W/System.err(2130):     at com.xyz.Main.Mail.send(Mail.java:123)
02-11 18:10:51.170: W/System.err(2130):     at com.xyz.Fragments$SendMail.doInBackground(DownloadTab.java:634)
02-11 18:10:51.170: W/System.err(2130):     at com.xyz.Fragments$SendMail.doInBackground(DownloadTab.java:1)
02-11 18:10:51.170: W/System.err(2130):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-11 18:10:51.170: W/System.err(2130):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
02-11 18:10:51.170: W/System.err(2130):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
02-11 18:10:51.170: W/System.err(2130):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-11 18:10:51.170: W/System.err(2130):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-11 18:10:51.170: W/System.err(2130):     at java.lang.Thread.run(Thread.java:856)
02-11 18:10:51.170: W/System.err(2130): Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
02-11 18:10:51.170: W/System.err(2130):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:381)
02-11 18:10:51.170: W/System.err(2130):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.<init>(OpenSSLSocketImpl.java:636)
02-11 18:10:51.170: W/System.err(2130):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:607)
02-11 18:10:51.170: W/System.err(2130):     at com.sun.mail.smtp.SMTPTransport.initStreams(SMTPTransport.java:1449)
02-11 18:10:51.170: W/System.err(2130):     at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1366)
02-11 18:10:51.170: W/System.err(2130):     ... 15 more
02-11 18:10:51.170: W/System.err(2130): Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
02-11 18:10:51.170: W/System.err(2130):     at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:276)
02-11 18:10:51.170: W/System.err(2130):     at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:197)
02-11 18:10:51.170: W/System.err(2130):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:584)
02-11 18:10:51.180: W/System.err(2130):     at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
02-11 18:10:51.180: W/System.err(2130):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:378)
02-11 18:10:51.180: W/System.err(2130):     ... 19 more
02-11 18:10:51.180: W/System.err(2130): Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
02-11 18:10:51.180: W/System.err(2130):     ... 24 more
02-11 18:10:51.211: W/EGL_emulation(2130): eglSurfaceAttrib not implemented
Community
  • 1
  • 1
Sanket Shah
  • 4,352
  • 3
  • 21
  • 41

0 Answers0