Próbuję opracować kod, który umożliwia wysyłanie wiadomości e-mail z javamail bez uwierzytelniania.
Properties properties = System.getProperties();
properties.put("mail.smtp.auth", "false");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", 587);
Session session = Session.getInstance(properties);
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("xxxxxx@hotmail.com"));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress("yyyyyyy@gmail.com"));
message.setSubject("This is the Subject Line!");
message.setText("This is actual message");
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException mex) {
mex.printStackTrace();
}
Ale kiedy go uruchomię, otrzymuję ten wyjątek
com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required.
Czy można wysyłać maile bez uwierzytelniania? Czy coś mi brakuje?
Odpowiedzi:
0 dla odpowiedzi № 1Spróbuj tego
Properties props = new Properties();
props.put("mail.smtp.host", mailHost);
props.put("mail.smtp.port", port);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromAddress));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddress));
message.setSubject(subject);
message.setContent(body, "text/html; charset=utf-8");
message.setText(body);
Transport.send(message);
0 dla odpowiedzi nr 2
Gmail w szczególności nie obsługuje nieautoryzowanego wysyłania wiadomości e-mail. W rzeczywistości większość publicznych serwerów SMTP już nie działa, ponieważ prowadzi to do zbytniego nadużywania.
ty może być w stanie znaleźć publiczny smtp, który nie wymaga uwierzytelniania, ale stają się one rzadkie. Zawsze możesz uruchomić własny smtp lub po prostu ... dodać uwierzytelnianie.
Zwłaszcza jeśli używasz Gmaila, możesz po prostu przekazać swoje dane uwierzytelniające?