title: I am unable to send email automatically from tab. However the same code works for mobile.. But not for tab
body: <p>I dont know y i am unable to send mail from tab. It gives  exception saying cud not communicate, network unreachable.
  Gmailsender.java</p>
  
  <pre><code>public class GMailSender extends javax.mail.Authenticator {
  private String mailhost = "smtp.gmail.com";
  private String user;
  private String password;
  private Session session;
  private Multipart _multipart = new MimeMultipart();
  static {
      Security.addProvider(new JSSEProvider());
  }
  public GMailSender(String user, String password) {
      this.user = user;
      this.password = password;
      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", mailhost);
      props.put("mail.smtp.auth", "true");
      props.put("mail.smtp.port", "465");
      props.put("mail.smtp.socketFactory.port", "465");
      props.put("mail.smtp.socketFactory.class",
              "javax.net.ssl.SSLSocketFactory");
      props.put("mail.smtp.socketFactory.fallback", "false");
      props.setProperty("mail.smtp.quitwait", "false");
      props.setProperty("mail.smtp.ssl.enable", "true");
  
      session = Session.getDefaultInstance(props, this);
  
  }
  protected PasswordAuthentication getPasswordAuthentication() {
  
      return new PasswordAuthentication(user, password);
  
  }
  public synchronized void sendMail(String subject, String body,
                                    String sender, String recipients) throws Exception {
      try {
          MimeMessage message = new MimeMessage(session);
          DataHandler handler = new DataHandler(new ByteArrayDataSource(
                  body.getBytes(), "text/plain"));
          message.setSender(new InternetAddress(sender));
          message.setSubject(subject);
          message.setDataHandler(handler);
          BodyPart messageBodyPart = new MimeBodyPart();
          messageBodyPart.setText(body);
          _multipart.addBodyPart(messageBodyPart);
          // Put parts in message
          message.setContent(_multipart);
          if (recipients.indexOf(',') &gt; 0)
              message.setRecipients(Message.RecipientType.TO,
                      InternetAddress.parse(recipients));
          else
              message.setRecipient(Message.RecipientType.TO,
                      new InternetAddress(recipients));
          Transport.send(message);
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
  
   public class ByteArrayDataSource implements DataSource {
      private byte[] data;
      private String type;
      public ByteArrayDataSource(byte[] data, String type) {
          super();
          this.data = data;
          this.type = type;
      }
  
      public ByteArrayDataSource(byte[] data) {
          super();
          this.data = data;
      }
  
      public void setType(String type) {
          this.type = type;
      }
  
      public String getContentType() {
  
          if (type == null)
              return "application/octet-stream";
          else
              return type;
      }
  
      public InputStream getInputStream() throws IOException {
          return new ByteArrayInputStream(data);
  
      }
      public String getName() {
          return "ByteArrayDataSource";
      }
  
      public OutputStream getOutputStream() throws IOException {
          throw new IOException("Not Supported");
      }
  }
  }
  </code></pre>
  
  <p>I called this from activity as below.</p>
  
  <pre><code>GMailSender gMailSender=new GMailSender("user@abc.com","passwd");
  gMailSender.sendMail(subject,message,"user@abc.com","to@abc.com");
  </code></pre>
  
  <p>Any suggestion wil be very helpful.</p>