Логика рассылки Java: не удалось преобразовать сокет в TLS
В одном приложении я реализовал логику отправки почты с использованием Java. я использовалsmtp.gmail.com
над587 port
с действительным идентификатором Gmail и паролем. В среде разработки все работает нормально. Но в производственной среде мне нужно использовать другой почтовый сервер, скажемsmtp.xyz.in
надport 25
с действительным адресом электронной почты и паролем в этом домене.
Когда я продолжу с SSL, включите следующий код:
Я получаю ошибку
Could not convert socket to TLS
SunCertPathBuilderException: Unable To Find Valid Certification Path To Requested Target
================================================== =====
final ResourceBundle rsbd=ResourceBundle.getBundle("main/ResourceBundle/Dyna");
// -- Attaching to default Session, or we could start a new one
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", port);
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.EnableSSL.enable","true");
Session session =Session.getInstance(props, new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(admin_mail, admin_password);}});
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(email, false));
msg.setSubject(subject);
msg.setText(emailContent);
// -- Set some other header information --
msg.setHeader("X-Mailer", "LOTONtechEmail");
msg.setSentDate(new Date());
// -- Send the message --
Transport.send(msg);
Когда я удаляю EnableSSL и пытаюсь добавить следующий код:
(getting javax.mail.AuthenticationFailedException:535 5.7.3 Authentication unsuccessful)
================================================== ========================
props.put("mail.smtp.socketFactory.port","25");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "true");
MailSSLSocketFactory sf=new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.socketFactory", sf);
Достаточно погуглив за последние 3 дня, я понимаю, что мне нужно настроить доверенный сертификат, как указаноВот.
Но я хочу продолжить без шифрования и без ограбления, чтобы включить SSL. Есть ли способ отправки писем с помощью java-программ через наш собственный домен без включения SSL. Любая помощь будет оценена.