Рубрики
Без рубрики

Отправка электронных писем с вложениями на Java

Узнайте, как отправлять электронные письма с одним и несколькими вложениями на Java.

Автор оригинала: baeldung.

1. Обзор

В этом кратком руководстве мы узнаем, как отправлять электронные письма с одним и несколькими вложениями на Java с помощью JavaMail API.

2. Настройка проекта

В этой статье мы создаем простой проект Maven с зависимостью javax.mail :


    javax.mail
    mail
    1.5.0-b01

3. Отправка Почты С Вложениями

Во-первых, мы должны настроить учетные данные поставщика услуг электронной почты . Затем объект Session создается путем предоставления хоста электронной почты, порта, имени пользователя и пароля. Все эти сведения предоставляются службой хостинга электронной почты. Мы можем использовать любые поддельные серверы тестирования SMTP для нашего кода.

Объект Session будет работать как фабрика соединений для обработки конфигурации и аутентификации для JavaMail .

Теперь, когда у нас есть Session object, давайте двинемся дальше и создадим MimeMessage и MimeBodyPart object. Мы используем эти объекты для создания сообщения электронной почты:

Message message = new MimeMessage(session); 
message.setFrom(new InternetAddress(from)); 
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); 
message.setSubject("Test Mail Subject"); 

BodyPart messageBodyPart = new MimeBodyPart(); 
messageBodyPart.setText("Mail Body");

В приведенном выше фрагменте мы создали объект MimeMessage с необходимыми деталями, такими как from, to и subject. Затем у нас есть объект MimeBodyPart с телом электронной почты.

Теперь нам нужно создать еще один MimeBodyPart , чтобы добавить вложение в нашу почту:

MimeBodyPart attachmentPart = new MimeBodyPart();
attachmentPart.attachFile(new File("C:\\Document1.txt"));

Теперь у нас есть два объекта MimeBodyPart для одного почтового сеанса. Поэтому нам нужно создать один объект MimeMultipart , а затем добавить в него оба объекта MimeBodyPart :

Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
multipart.addBodyPart(attachmentPart);

Наконец, MimeMultipart добавляется в объект MimeMessage в качестве содержимого нашей почты, и для отправки сообщения вызывается метод Transport.send() :

message.setContent(multipart);
Transport.send(message);

Подводя итог, можно сказать, что Сообщение содержит MimeMultipart , который дополнительно содержит несколько MimeBodyPart(ов) . Вот как мы собираем полное электронное письмо.

Кроме того, для отправки нескольких вложений вы можете просто добавить еще один MimeBodyPart .

4. Заключение

В этом уроке мы узнали, как отправлять электронные письма с одним и несколькими вложениями на Java.

Как всегда, полный исходный код доступен на GitHub .