Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpMlInr 291 of 322 menu
◀ ▶

Введение в почту в Java

Складская или учетная программа иногда должна отправить уведомление менеджеру: тема попадает в список входящих, тело несет факты о заказе или остатках. Передачу от клиента к серверу выполняет протокол SMTP: программа открывает соединение, передает заголовки и содержимое, сервер принимает письмо в ящик получателя.

В учебных примерах удобно поднимать SMTP на той же машине. GreenMail слушает 127.0.0.1, принимает письма в память и позволяет прочитать их сразу после отправки, не настраивая реальный почтовый домен.

Схема запуска: создать сервер для тестового SMTP, зарегистрировать ящик получателя, собрать MimeMessage через Session и вызвать Transport.send. Тему принятого письма можно взять из массива, который возвращает сервер:

import com.icegreen.greenmail.util.GreenMail; import com.icegreen.greenmail.util.ServerSetupTest; import jakarta.mail.Message; import jakarta.mail.Session; import jakarta.mail.Transport; import jakarta.mail.internet.InternetAddress; import jakarta.mail.internet.MimeMessage; import java.util.Properties; public class Main { public static void main(String[] args) throws Exception { GreenMail server = new GreenMail(ServerSetupTest.SMTP); server.start(); server.setUser("reader@local.test", "reader", "pass"); Properties props = new Properties(); props.put("mail.smtp.host", "127.0.0.1"); props.put( "mail.smtp.port", String.valueOf(server.getSmtp().getPort()), ); props.put("mail.smtp.auth", "false"); Session session = Session.getInstance(props); MimeMessage letter = new MimeMessage(session); letter.setFrom(new InternetAddress("writer@local.test")); letter.setRecipient( Message.RecipientType.TO, new InternetAddress("reader@local.test"), ); letter.setSubject("Welcome note"); letter.setText("Short body for the intro lesson."); Transport.send(letter); MimeMessage[] inbox = server.getReceivedMessages(); System.out.println(inbox[0].getSubject()); server.stop(); } }

В консоли появляется Welcome note - та же тема, которую задали перед отправкой. Так проверяют, что письмо дошло до тестового ящика без обращения к интернет-провайдеру.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить