Простое письмо в Java
Простое письмо состоит из одной текстовой части без
HTML и вложений. Метод setText у MimeMessage
задает содержимое в кодировке по умолчанию и выставляет
тип text/plain.
После Transport.send тело принятого сообщения
читают через getContent и приводят к строке:
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("Plain sample");
letter.setText("The shipment left the warehouse at noon.");
Transport.send(letter);
String body = (String) server.getReceivedMessages()[0]
.getContent();
System.out.println(body);
server.stop();
}
}
В выводе - полный текст без темы и служебных заголовков. Так проверяют, что клиент и тестовый сервер согласованы по адресу получателя и порту SMTP.
Отправьте письмо с темой "Status" и текстом
"All items packed." на
reader@local.test. Выведите тело из
локального ящика.
Задайте текст из двух строк: "Line one"
и "Line two" через символ перевода строки.
После отправки выведите тело целиком.