конфигурация javamail для сайта - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь подключиться к почтовому серверу с помощью SiteGround с использованием почтовой библиотеки java.

Но каждый раз, когда я вижу, возникает ошибка handshake_failed.

Даже когда я зашелв службу поддержки говорят, что мы не можем вам помочь с этим.

Если кто-то реализовал что-то подобное, пожалуйста, поделитесь.

Ниже приведен вспомогательный класс, который я использую для подключения ксервер и отправлять электронные письма.

import java.util.Properties;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMailTLS {

    private String fromEmail;
    private String username;
    private String password;
    private String subject;
    private String body;

    public SendMailTLS(String fromEmail, String username, String password, String subject) {
        this.fromEmail = fromEmail;
        this.username = username;
        this.password = password;
        this.subject = subject;
    }

    public void setBody(String body){
        this.body = body;
    }

    public boolean send(String toEmail) {
        String d_host = "example.com";

        try {
            Properties props = new Properties();
            props.put("mail.smtps.host", d_host);
            props.put("mail.smtps.auth", "true");
            props.setProperty("mail.smtps.socketFactory.port", "465");
            props.setProperty("mail.smtp.ssl.enable", "true"); 

            Session session = Session.getInstance(props, new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(fromEmail));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
            message.setSubject(subject);

            // set plain text message
            message.setContent(body, "text/html");

            Transport transport = session.getTransport("smtps");
            transport.connect(d_host, 465, username, password);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();

            return true;

        } catch (Exception e) {
            e.printStackTrace();
        }

        return false;
    }
}
...