Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.54 KB | None | 0 0
  1. package com.sbk.common;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class SendMail  implements Serializable {
  6.  
  7.     private static final long serialVersionUID = 1L;
  8.    
  9.     public static final Config config = new Config();
  10.    
  11.     private static int HOST_NUMBER = 0;
  12.    
  13.     private Protocol m_log;
  14.    
  15.     private ArrayList<String> m_RecipientList;
  16.     private String m_szSubject;
  17.     private String m_szMessage = "";
  18.     private String m_szSender;
  19.     private ArrayList<String> m_attachments;
  20.    
  21.     public SendMail(ArrayList<String> aAddress, String szSubject, Protocol log)
  22.     {
  23.         m_log = new Protocol(log);
  24.  
  25.         m_RecipientList = aAddress;
  26.         m_szSubject = szSubject;
  27.        
  28.         m_attachments = new ArrayList<String>();
  29.        
  30.         HOST_NUMBER++;
  31.         if(HOST_NUMBER >= Config.m_EmailList.size())
  32.             HOST_NUMBER = 0;
  33.  
  34.         m_szSender = Config.m_EmailList.get(HOST_NUMBER).getSenderAddress();
  35.     }
  36.    
  37.     public boolean send(){
  38.        
  39.         m_log.SetWhere("SendMail.send");
  40.  
  41.         EMail myEmail = Config.m_EmailList.get(HOST_NUMBER);
  42.        
  43.         String szHost = myEmail.getSmtpHost();
  44.         int iPort = myEmail.getSmtpPort();
  45.         String szUserName = myEmail.getSmtpUser();
  46.         String szPassword = myEmail.getSmtpPassword();
  47.        
  48.         Session mailSession = Session.getDefaultInstance(new Properties());
  49.         Message myMessage = new MimeMessage(mailSession);
  50.        
  51.         try {
  52.             myMessage.setFrom(new InternetAddress(this.m_szSender));
  53.             ArrayList<String> aToAddress = this.m_RecipientList;
  54.             for(int i = 0; i < aToAddress.size(); i++){
  55.                 if(i==0)
  56.                     myMessage.addRecipient(RecipientType.TO, new InternetAddress(aToAddress.get(i)));
  57.                 else
  58.                     myMessage.addRecipient(RecipientType.CC, new InternetAddress(aToAddress.get(i)));
  59.                
  60.             }
  61.            
  62.             myMessage.setSubject(this.m_szSubject);
  63.            
  64.             // Create a message part to represent the body text
  65.             BodyPart messageBodyPart = new MimeBodyPart();
  66.             messageBodyPart.setText(this.m_szMessage);
  67.              
  68.             //use a MimeMultipart as we need to handle the file attachments
  69.             Multipart multipart = new MimeMultipart();
  70.              
  71.             //add the message body to the mime message
  72.             multipart.addBodyPart(messageBodyPart);
  73.              
  74.             /*
  75.             // add any file attachments to the message TODO: add attachment as file content
  76.             Iterator<String> myAttachmentIterator = m_attachments.iterator();
  77.             while (myAttachmentIterator.hasNext()) {
  78.                 String filename = myAttachmentIterator.next();
  79.                 MimeBodyPart attachmentBodyPart = new MimeBodyPart();
  80.                
  81.                 //use a JAF FileDataSource as it does MIME type detection
  82.                 DataSource source = new FileDataSource(filename);
  83.                 attachmentBodyPart.setDataHandler(new DataHandler(source));
  84.                
  85.                 //assume that the filename you want to send is the same as the
  86.                 //actual file name - could alter this to remove the file path
  87.                 attachmentBodyPart.setFileName(filename);
  88.                
  89.                 //add the attachment
  90.                 multipart.addBodyPart(attachmentBodyPart);
  91.             }
  92.              */
  93.             // Put all message parts in the message
  94.             myMessage.setContent(multipart);
  95.            
  96.             System.out.println("SmtpHost: " + szHost);
  97.             System.out.println("SmtpPort: " + iPort);
  98.             System.out.println("szUserName: " + szUserName);
  99.             System.out.println("szPassword: " + szPassword);
  100.            
  101.             Transport transport = mailSession.getTransport("smtp");
  102.             try {
  103.                 transport.connect(szHost, iPort, szUserName, szPassword);
  104.             } catch (AddressException e) {
  105.                 m_log.Log(Protocol.Code.INFO_CONFIG, "transport.connect", e.getMessage());
  106.                 return false;
  107.             } catch (MessagingException e) {
  108.                 m_log.Log(Protocol.Code.INFO_CONFIG, "transport.connect failure [MessagingException]", e.getMessage());
  109.                 return false;
  110.             }          
  111.             try {
  112.             transport.sendMessage(myMessage, myMessage.getAllRecipients());
  113.             } catch (AddressException e) {
  114.                 m_log.Log(Protocol.Code.INFO_CONFIG, "transport.sendMessage [AddressException]", e.getMessage());
  115.                 return false;
  116.             } catch (MessagingException e) {
  117.                 m_log.Log(Protocol.Code.INFO_CONFIG, "transport.sendMessage [MessagingException]", e.getMessage());
  118.                 return false;
  119.             }          
  120.             transport.close();
  121.  
  122.             m_log.Log(Protocol.Code.INFO_CONFIG, "Email(s) properly sent", "Count["+aToAddress.size()+"], Msg["+this.m_szMessage+"]");
  123.             return true;
  124.            
  125.         } catch (AddressException e) {
  126.             m_log.Log(Protocol.Code.INFO_CONFIG, "Email sending failure [AddressException]", e.getMessage());
  127.             //e.printStackTrace();
  128.         } catch (MessagingException e) {
  129.             m_log.Log(Protocol.Code.INFO_CONFIG, "Email sending failure [MessagingException]", e.getMessage());
  130.             //e.printStackTrace();
  131.         }          
  132.        
  133.         return false;
  134.     }
  135.  
  136.     public void addMessage(String szMessage)
  137.     {
  138.         m_szMessage = szMessage + "\n";
  139.     }
  140.  
  141.     public void addAddress(String szAddress)
  142.     {
  143.         this.m_RecipientList.add(szAddress);
  144.     }
  145.    
  146.     public void removeAddress(String szAddress)
  147.     {
  148.         this.m_RecipientList.remove(szAddress);
  149.     }
  150.    
  151.     public void setSubject(String m_szSubject) {
  152.         this.m_szSubject = m_szSubject;
  153.     }
  154.     public String getSubject() {
  155.         return m_szSubject;
  156.     }
  157.     public void setMessage(String m_szMessage) {
  158.         this.m_szMessage = m_szMessage;
  159.     }
  160.     public String getMessage() {
  161.         return m_szMessage;
  162.     }
  163.     public void setSender(String m_szSender) {
  164.         this.m_szSender = m_szSender;
  165.     }
  166.     public String getSender() {
  167.         return m_szSender;
  168.     }
  169.  
  170.     public void addAttachment(String szAttachment) {
  171.         this.m_attachments.add(szAttachment);
  172.     }
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement