Advertisement
Guest User

Untitled

a guest
Mar 20th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement