1. Обзор
В этом кратком руководстве мы узнаем, как отправлять электронные письма с одним и несколькими вложениями на Java с помощью JavaMail API.
2. Настройка проекта
В этой статье мы создаем простой проект Maven с зависимостью javax.mail :
javax.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 .