/ / Wyślij e-mail bez uwierzytelniania - java, email, uwierzytelnianie, javamail

Wysyłaj wiadomości e-mail bez uwierzytelniania - java, poczta e-mail, uwierzytelnianie, javamail

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 № 1

Spró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?