SHARE
TWEET

Untitled

a guest Mar 20th, 2017 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package su.vistar.comanager.report.mailer;
  2.  
  3. import su.vistar.comanager.report.entity.VehicleDetail;
  4. import su.vistar.logging.LoggerManager;
  5.  
  6. import javax.activation.DataHandler;
  7. import javax.activation.DataSource;
  8. import javax.mail.*;
  9. import javax.mail.internet.*;
  10. import javax.mail.util.ByteArrayDataSource;
  11. import java.io.ByteArrayOutputStream;
  12. import java.io.UnsupportedEncodingException;
  13. import java.util.List;
  14. import java.util.Map;
  15. import java.util.Properties;
  16.  
  17. /**
  18.  * @author Pavel Glukhov <pavel.glukhov@vistar.su>
  19.  * Отправитель писем по протоколу TLS
  20.  */
  21.  
  22. public class Sender {
  23.     @SuppressWarnings("unused")
  24.     private static final LoggerManager log = new LoggerManager();
  25.  
  26.     private String username;
  27.     private String password;
  28.     private Properties props;
  29.  
  30.     public Sender(String username, String password, Properties properties) {
  31.         this.username = username;
  32.         this.password = password;
  33.         this.props = properties;
  34.     }
  35.  
  36.     public void send(String subject, String text, String toEmail, ByteArrayOutputStream report,
  37.                      String lastName, Integer year, String month) {
  38.         final Session session = Session.getInstance(props, new Authenticator() {
  39.             protected PasswordAuthentication getPasswordAuthentication() {
  40.                 return new PasswordAuthentication(username, password);
  41.             }
  42.         });
  43.  
  44.         try {
  45.             final MimeMessage message = new MimeMessage(session);
  46.  
  47.             message.setHeader("Content-Type", "text/plain; charset=UTF-8");
  48.  
  49.             //от кого
  50.             message.setFrom(new InternetAddress(username));
  51.             //кому
  52.             message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
  53.  
  54.             //Заголовок письма
  55.             message.setSubject(subject, "UTF-8");
  56.  
  57.             //Содержимое
  58.             message.setText(text, "UTF-8");
  59.  
  60.             // Этап тестирования
  61.             // Формируем тело письма
  62.             BodyPart messageBodyPart = new MimeBodyPart();
  63.  
  64.             // Наполняем его сообщением
  65.             messageBodyPart.setText(text);
  66.  
  67.             // Create a multipar message
  68.             Multipart multipart = new MimeMultipart();
  69.  
  70.             // Set text message part
  71.             multipart.addBodyPart(messageBodyPart);
  72.  
  73.             messageBodyPart = new MimeBodyPart();
  74.  
  75.             final String filename; //String.format("%s %s %d (new).xls", lastName.trim(), month, year);
  76.             try {
  77.                 filename = MimeUtility.encodeText(String.format("%s %s %d (new).xls", lastName.trim(),
  78.                         month, year));
  79.             } catch (UnsupportedEncodingException uex) {
  80.                 throw new IllegalArgumentException("Something wrong with filename : " +
  81.                         String.format("%s %s %d (new).xls ", lastName.trim(), month, year), uex);
  82.             }
  83.  
  84.             final DataSource aAttachment = new ByteArrayDataSource(report.toByteArray(), "application/vnd.ms-excel;charset=UTF-8");
  85.             messageBodyPart.setDataHandler(new DataHandler(aAttachment));
  86.             messageBodyPart.setFileName(filename);
  87.             messageBodyPart.setHeader("Content-Type", "application/vnd.ms-excel;charset=UTF-8");
  88.  
  89.             multipart.addBodyPart(messageBodyPart);
  90.  
  91.             message.setContent(multipart);
  92.  
  93.             //Отправляем сообщение
  94.             Transport.send(message);
  95.         } catch (MessagingException e) {
  96.             throw new RuntimeException(e);
  97.         }
  98.     }
  99. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top