Я пытаюсь подключиться к почтовому серверу с помощью 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;
}
}