1. Обзор
В этом кратком руководстве мы рассмотрим отправку электронной почты с вложениями и без них, используя основную почтовую библиотеку Java.
2. Настройка проекта и зависимость
В этой статье мы будем использовать простой проект на основе Maven с зависимостью от почтовой библиотеки Java:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.0-b01</version>
</dependency>
Последнюю версию можно найти здесь .
3. Отправка обычного текста и электронной почты в формате HTML
Во-первых, нам нужно настроить библиотеку с учетными данными нашего поставщика услуг электронной почты. Затем мы создадим сеанс
, который будет использоваться при создании нашего сообщения для отправки.
Конфигурация осуществляется через объект свойств
Java :
Properties prop = new Properties();
prop.put("mail.smtp.auth", true);
prop.put("mail.smtp.starttls.enable", "true");
prop.put("mail.smtp.host", "smtp.mailtrap.io");
prop.put("mail.smtp.port", "25");
prop.put("mail.smtp.ssl.trust", "smtp.mailtrap.io");
В приведенной выше конфигурации свойств мы настроили почтовый хост как Mailtrap и также используем порт, предоставленный службой.
Теперь давайте двинемся дальше, создав сеанс с нашим именем пользователя и паролем:
Session session = Session.getInstance(prop, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
Имя пользователя и пароль предоставляются почтовым провайдером вместе с параметрами хоста и порта.
Теперь, когда у нас есть объект почтового сеанса
, давайте создадим сообщение
Mime
для отправки: ``
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from@gmail.com"));
message.setRecipients(
Message.RecipientType.TO, InternetAddress.parse("to@gmail.com"));
message.setSubject("Mail Subject");
String msg = "This is my first email using JavaMailer";
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setContent(msg, "text/html; charset=utf-8");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(mimeBodyPart);
message.setContent(multipart);
Transport.send(message);
В приведенном выше фрагменте мы сначала создали экземпляр сообщения
с необходимыми свойствами — «кому», «от» и «тема». За ним следует mimeBodyPart
с кодировкой text/html,
поскольку наше сообщение оформлено в HTML.
Следующее, что мы сделали, — это создали экземпляр объекта MimeMultipart
, который мы можем использовать для обертывания созданного нами mimeBodyPart
.
Наконец, мы устанавливаем составной
объект в качестве содержимого нашего сообщения
и используем метод send()
объекта Transport
для отправки почты.
Итак, мы можем сказать, что mimeBodyPart
содержится в составной
части , содержащейся в сообщении.
Следовательно, составной
элемент может содержать более одного mimeBodyPart
.
Это будет в центре внимания следующего раздела.
4. Отправка электронной почты с вложением
Далее, чтобы отправить вложение, нам нужно всего лишь создать еще один MimeBodyPart
и прикрепить к нему файл(ы):
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
attachmentBodyPart.attachFile(new File("path/to/file"));
Затем мы можем добавить новую часть тела в объект MimeMultipart
, который мы создали ранее:
multipart.addBodyPart(attachmentBodyPart);
Это все, что нам нужно сделать.
Еще раз, мы устанавливаем составной
экземпляр как содержимое объекта сообщения
и, наконец, мы будем использовать send()
для отправки почты .
5. Форматирование текста электронной почты
Для форматирования и оформления текста электронной почты мы можем использовать теги HTML и CSS. Например, если мы хотим, чтобы наш текст был жирным, мы реализуем тег <b
> .
Для раскрашивания текста мы можем использовать тег стиля
.
Мы также можем комбинировать теги HTML с тегами CSS, если хотим иметь дополнительные свойства, такие как полужирный шрифт.
Например, мы можем создать строку
, содержащую полужирный красный текст:
String msgStyled = "This is my <b style='color:red;'>bold-red email</b> using JavaMailer";
Эта строка
будет содержать наш стилизованный текст для отправки в теле письма.
6. Заключение
В заключение мы увидели, как использовать собственную почтовую библиотеку Java для отправки электронных писем даже с вложениями.
Как всегда, полный исходный код доступен на Github .