Advertisement
Fhernd

Mail.java

Oct 15th, 2013
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.65 KB | None | 0 0
  1. package tom.callesseguras;
  2.  
  3. import java.security.Security;
  4. import java.util.Date;
  5. import java.util.Properties;
  6. import javax.activation.CommandMap;
  7. import javax.activation.DataHandler;
  8. import javax.activation.DataSource;
  9. import javax.activation.FileDataSource;
  10. import javax.activation.MailcapCommandMap;
  11. import javax.mail.BodyPart;
  12. import javax.mail.Multipart;
  13. import javax.mail.PasswordAuthentication;
  14. import javax.mail.Session;
  15. import javax.mail.Transport;
  16. import javax.mail.internet.InternetAddress;
  17. import javax.mail.internet.MimeBodyPart;
  18. import javax.mail.internet.MimeMessage;
  19. import javax.mail.internet.MimeMultipart;
  20.  
  21. public class Mail extends javax.mail.Authenticator {
  22.     private String _user;
  23.     private String _pass;
  24.  
  25.     private String[] _to;
  26.     private String _from;
  27.  
  28.     private String _port;
  29.     private String _sport;
  30.  
  31.     private String _host;
  32.  
  33.     private String _subject;
  34.     private String _body;
  35.  
  36.     private boolean _auth;
  37.  
  38.     private boolean _debuggable;
  39.  
  40.     private Multipart _multipart;
  41.  
  42.    
  43.     public Mail() {
  44.         _host = "smtp.gmail.com"; // default smtp server
  45.         _port = "465"; // default smtp port
  46.         _sport = "465"; // default socketfactory port
  47.  
  48.         _user = ""; // username
  49.         _pass = ""; // password
  50.         _from = ""; // email sent from
  51.         _subject = ""; // email subject
  52.         _body = ""; // email body
  53.  
  54.         _debuggable = false; // debug mode on or off - default off
  55.         _auth = true; // smtp authentication - default on
  56.  
  57.         _multipart = new MimeMultipart();
  58.  
  59.         // There is something wrong with MailCap, javamail can not find a
  60.         // handler for the multipart/mixed part, so this bit needs to be added.
  61.         MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
  62.         mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
  63.         mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
  64.         mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
  65.         mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
  66.         mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
  67.         CommandMap.setDefaultCommandMap(mc);
  68.     }
  69.  
  70.    
  71.     public Mail(String user, String pass) {
  72.         this();
  73.  
  74.         _user = user;
  75.         _pass = pass;
  76.     }
  77.    
  78.      public void setTo(String[] toArr){
  79.          _to = toArr;
  80.      }
  81.      
  82.      public void setFrom(String from){
  83.          _from = from;
  84.      }
  85.      public void setSubject(String subject){
  86.          _subject = subject;
  87.      }
  88.  
  89.     public boolean send() throws Exception {
  90.         Properties props = _setProperties();
  91.  
  92.         if (!_user.equals("") && !_pass.equals("") && _to.length > 0
  93.                 && !_from.equals("") && !_subject.equals("")
  94.                 && !_body.equals("")) {
  95.             Session session = Session.getInstance(props, this);
  96.  
  97.             MimeMessage msg = new MimeMessage(session);
  98.  
  99.             msg.setFrom(new InternetAddress(_from));
  100.  
  101.             InternetAddress[] addressTo = new InternetAddress[_to.length];
  102.             for (int i = 0; i < _to.length; i++) {
  103.                 addressTo[i] = new InternetAddress(_to[i]);
  104.             }
  105.             msg.setRecipients(MimeMessage.RecipientType.TO, addressTo);
  106.  
  107.             msg.setSubject(_subject);
  108.             msg.setSentDate(new Date());
  109.  
  110.             // setup message body
  111.             BodyPart messageBodyPart = new MimeBodyPart();
  112.             messageBodyPart.setText(_body);
  113.             _multipart.addBodyPart(messageBodyPart);
  114.  
  115.             // Put parts in message
  116.             msg.setContent(_multipart);
  117.  
  118.             // send email
  119.             Transport.send(msg);
  120.  
  121.             return true;
  122.         } else {
  123.             return false;
  124.         }
  125.     }
  126.  
  127.     public void addAttachment(String filename) throws Exception {
  128.         BodyPart messageBodyPart = new MimeBodyPart();
  129.         DataSource source = new FileDataSource(filename);
  130.         messageBodyPart.setDataHandler(new DataHandler(source));
  131.         messageBodyPart.setFileName(filename);
  132.  
  133.         _multipart.addBodyPart(messageBodyPart);
  134.     }
  135.  
  136.     @Override
  137.     public PasswordAuthentication getPasswordAuthentication() {
  138.         return new PasswordAuthentication(_user, _pass);
  139.     }
  140.  
  141.     private Properties _setProperties() {
  142.         Properties props = new Properties();
  143.  
  144.         props.put("mail.smtp.host", _host);
  145.  
  146.         if (_debuggable) {
  147.             props.put("mail.debug", "true");
  148.         }
  149.  
  150.         if (_auth) {
  151.             props.put("mail.smtp.auth", "true");
  152.         }
  153.  
  154.         props.put("mail.smtp.port", _port);
  155.         props.put("mail.smtp.socketFactory.port", _sport);
  156.         props.put("mail.smtp.socketFactory.class",
  157.                 "javax.net.ssl.SSLSocketFactory");
  158.         props.put("mail.smtp.socketFactory.fallback", "false");
  159.  
  160.         return props;
  161.     }
  162.  
  163.     // the getters and setters
  164.     public String getBody() {
  165.         return _body;
  166.     }
  167.  
  168.     public void setBody(String _body) {
  169.         this._body = _body;
  170.     }
  171. //  static {  
  172. //        Security.addProvider(new co.callesseguras.JSSEProvider());  
  173. //    }  
  174.  
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement