Android Open Source - DroidAlone G Mail Sender






From Project

Back to project page DroidAlone.

License

The source code is released under:

Apache License

If you think the Android project DroidAlone listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.fede;
//from w  w w  . j  ava 2s . c o m
 /*                                 */  
 /* Sendmail.src.com.example.sendmail.GMailSender.java   */  
 /*                                 */  

   
 import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
   
 public class GMailSender extends javax.mail.Authenticator {  
     private final static String mailhost = "smtp.gmail.com";
     private String user;  
     private String password;  
     private Session session;  
   
   //  static {  
    //    Security.addProvider(new org.apache.harmony.xnet.provider.jsse.JSSEProvider());  
   // }  
   
     public GMailSender(String user, String password) {  
         if(user.toLowerCase().endsWith("@gmail.com")){
             this.user = user;
         }else{
             this.user = user + "@gmail.com";   // in case the user did not put @gmail.com
         }
         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");  
   
         session = Session.getDefaultInstance(props, this);  
     }  
   
     @Override
  protected PasswordAuthentication getPasswordAuthentication() {  
         return new PasswordAuthentication(user, password);  
     }  
   
     public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {  
       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);  
         if (recipients.indexOf(',') > 0)  
             message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));  
         else  
             message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));  
         Transport.send(message);  
     }  
   
     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");  
         }  
     }  
 }




Java Source Code List

com.fede.ActiveState.java
com.fede.BootReceiver.java
com.fede.CommandSms.java
com.fede.DroidAloneApplication.java
com.fede.DroidContentProviderClient.java
com.fede.DroidContentProvider.java
com.fede.EventForwarder.java
com.fede.FirstActivity.java
com.fede.GMailSender.java
com.fede.HomeAloneHelp.java
com.fede.HomeAlonePreferences.java
com.fede.HomeAloneService.java
com.fede.InactiveState.java
com.fede.IncomingCallReceiver.java
com.fede.IncomingSmsReceiver.java
com.fede.NameNotFoundException.java
com.fede.OkDialogInterface.java
com.fede.SendInterface.java
com.fede.ServiceState.java
com.fede.TestStubInterface.java
com.fede.MessageException.CommandParseException.java
com.fede.MessageException.ForwardingDisabledException.java
com.fede.MessageException.InvalidCommandException.java
com.fede.MessageException.InvalidPasswordException.java
com.fede.MessageException.LocationNotFoundException.java
com.fede.Utilities.GeneralUtils.java
com.fede.Utilities.LocationUpdater.java
com.fede.Utilities.PrefUtils.java
com.fede.wizard.MailWizard.java
com.fede.wizard.SmsWizard.java
com.fede.wizard.StartWizard.java