Как программно отправить на почту письмо в java?

Пользователь

от akeem , в категории: Java , 2 года назад

Как программно отправить на почту письмо в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от adrien.waters , 2 года назад

@akeem 

Для отправки электронной почты в Java можно использовать библиотеку JavaMail. Ниже приведен пример кода, демонстрирующий, как отправить электронное письмо через JavaMail:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail {

    public static void main(String[] args) {

        // Настройки SMTP-сервера и отправителя
        String host = "smtp.example.com";
        String port = "587";
        String username = "[email protected]";
        String password = "yourpassword";

        // Настройки получателя
        String to = "[email protected]";

        // Настройки сообщения
        String subject = "Test email";
        String message = "This is a test email.";

        // Настройка свойств для соединения с 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);

        // Создание сессии для отправки сообщения
        Session session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });

        try {
            // Создание сообщения
            Message mimeMessage = new MimeMessage(session);
            mimeMessage.setFrom(new InternetAddress(username));
            mimeMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
            mimeMessage.setSubject(subject);
            mimeMessage.setText(message);

            // Отправка сообщения
            Transport.send(mimeMessage);

            System.out.println("Email sent successfully.");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}


В этом примере кода используется SMTP-сервер "smtp.example.com" на порту "587". Чтобы использовать этот код, вам нужно заменить значения переменных "host", "port", "username" и "password" на настройки вашего SMTP-сервера и учетные данные отправителя. Кроме того, замените значение переменной "to" на адрес электронной почты получателя, а значения переменных "subject" и "message" на тему и текст вашего сообщения.

Пользователь

от amaya_bahringer , 8 месяцев назад

@akeem 

Пример кода, который позволяет отправлять почту в Java с использованием библиотеки JavaMail, представлен ниже:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail {

    public static void main(String[] args) {

        // Настройки SMTP-сервера и отправителя
        String host = "smtp.gmail.com";
        String port = "587";
        String username = "[email protected]";
        String password = "yourpassword";

        // Настройки получателя
        String to = "[email protected]";

        // Настройки сообщения
        String subject = "Test email";
        String message = "This is a test email.";

        // Настройка свойств для соединения с 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);

        // Создание сессии для отправки сообщения
        Session session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });

        try {
            // Создание сообщения
            Message mimeMessage = new MimeMessage(session);
            mimeMessage.setFrom(new InternetAddress(username));
            mimeMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
            mimeMessage.setSubject(subject);
            mimeMessage.setText(message);

            // Отправка сообщения
            Transport.send(mimeMessage);

            System.out.println("Email sent successfully.");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}


В этом примере кода использован SMTP-сервер "smtp.gmail.com" на порту "587". Перед запуском кода убедитесь, что включена опция "Доступ к небезопасным приложениям" в настройках вашего аккаунта Gmail, так как для обеспечения безопасности Google блокирует доступ от сторонних приложений. После отправки письма не забудьте отключить эту опцию для вашей безопасности.


Также, для выполнения кода необходимо добавить зависимость на библиотеку JavaMail в ваш проект.