Для получения фактического ответа от SMTP сервера в Java, вы можете использовать библиотеку JavaMail. JavaMail предоставляет классы и методы для работы с электронной почтой, включая отправку писем по протоколу SMTP.
Вот пример кода, который позволяет отправить письмо при помощи JavaMail и получить фактический ответ от SMTP сервера:
import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SMTPExample { public static void main(String[] args) { // Настройки для подключения к SMTP серверу String host = "smtp.example.com"; String username = "your_username"; String password = "your_password"; int port = 587; // порт SMTP сервера (например, 587 для Gmail) // Создание свойств для подключения к SMTP серверу Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", host); props.put("mail.smtp.port", port); // Создание сессии для подключения к SMTP серверу с указанными свойствами Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { // Создание объекта сообщения Message message = new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); message.setSubject("Test Email"); message.setText("This is a test email."); // Отправка письма Transport.send(message); // Получение фактического ответа от SMTP сервера Transport transport = session.getTransport("smtp"); transport.connect(host, port, username, password); int responseCode = transport.getLastReturnCode(); String responseMessage = transport.getLastServerResponse(); System.out.println("Response Code: " + responseCode); System.out.println("Response Message: " + responseMessage); // Закрытие соединения с SMTP сервером transport.close(); System.out.println("Email sent successfully!"); } catch (MessagingException e) { e.printStackTrace(); } } }
В этом примере мы создаем свойства для подключения к SMTP серверу, используя указанный хост, имя пользователя, пароль и порт. Затем мы создаем сессию с помощью этих свойств и аутентификационных данных.
Далее мы создаем объект сообщения, устанавливаем отправителя, получателя, тему и текст сообщения. Затем мы отправляем сообщение при помощи метода Transport.send()
.
После отправки мы получаем фактический ответ от SMTP сервера, вызывая метод Transport.getLastReturnCode()
для получения кода ответа и метод Transport.getLastServerResponse()
для получения текста ответа. Пример выводит код и текст ответа на консоль.
Наконец, мы закрываем соединение с SMTP сервером при помощи метода Transport.close()
.
Обратите внимание, что в этом примере используются фиктивные значения для хоста, имени пользователя и пароля. Вам необходимо заменить их на реальные значения для вашего SMTP сервера.