Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package su.vistar.comanager.report.mailer;
- import su.vistar.comanager.report.entity.VehicleDetail;
- import su.vistar.logging.LoggerManager;
- import javax.activation.DataHandler;
- import javax.activation.DataSource;
- import javax.mail.*;
- import javax.mail.internet.*;
- import javax.mail.util.ByteArrayDataSource;
- import java.io.ByteArrayOutputStream;
- import java.io.UnsupportedEncodingException;
- import java.util.List;
- import java.util.Map;
- import java.util.Properties;
- /**
- * @author Pavel Glukhov <pavel.glukhov@vistar.su>
- * Отправитель писем по протоколу TLS
- */
- public class Sender {
- @SuppressWarnings("unused")
- private static final LoggerManager log = new LoggerManager();
- private String username;
- private String password;
- private Properties props;
- public Sender(String username, String password, Properties properties) {
- this.username = username;
- this.password = password;
- this.props = properties;
- }
- public void send(String subject, String text, String toEmail, ByteArrayOutputStream report,
- String lastName, Integer year, String month) {
- final Session session = Session.getInstance(props, new Authenticator() {
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(username, password);
- }
- });
- try {
- final MimeMessage message = new MimeMessage(session);
- message.setHeader("Content-Type", "text/plain; charset=UTF-8");
- //от кого
- message.setFrom(new InternetAddress(username));
- //кому
- message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
- //Заголовок письма
- message.setSubject(subject, "UTF-8");
- //Содержимое
- message.setText(text, "UTF-8");
- // Этап тестирования
- // Формируем тело письма
- BodyPart messageBodyPart = new MimeBodyPart();
- // Наполняем его сообщением
- messageBodyPart.setText(text);
- // Create a multipar message
- Multipart multipart = new MimeMultipart();
- // Set text message part
- multipart.addBodyPart(messageBodyPart);
- messageBodyPart = new MimeBodyPart();
- final String filename; //String.format("%s %s %d (new).xls", lastName.trim(), month, year);
- try {
- filename = MimeUtility.encodeText(String.format("%s %s %d (new).xls", lastName.trim(),
- month, year));
- } catch (UnsupportedEncodingException uex) {
- throw new IllegalArgumentException("Something wrong with filename : " +
- String.format("%s %s %d (new).xls ", lastName.trim(), month, year), uex);
- }
- final DataSource aAttachment = new ByteArrayDataSource(report.toByteArray(), "application/vnd.ms-excel;charset=UTF-8");
- messageBodyPart.setDataHandler(new DataHandler(aAttachment));
- messageBodyPart.setFileName(filename);
- messageBodyPart.setHeader("Content-Type", "application/vnd.ms-excel;charset=UTF-8");
- multipart.addBodyPart(messageBodyPart);
- message.setContent(multipart);
- //Отправляем сообщение
- Transport.send(message);
- } catch (MessagingException e) {
- throw new RuntimeException(e);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement