/ / Надіслати електронну пошту без аутентифікації - Java, електронна пошта, аутентифікація, javamail

Надіслати електронну пошту без аутентифікації - Java, електронна пошта, аутентифікація, javamail

Я намагаюся розробити код, який дозволяє відправляти повідомлення з javamail без аутентифікації.

        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();
}

Але коли я виконую його, я отримую це виключення

com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required.

Чи можна відправляти листи без автентифікації? Я щось відсутній?

Відповіді:

0 для відповіді № 1

Спробуйте це

    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 для відповіді № 2

Gmail спеціально не підтримує несанкціоноване надсилання пошти. Насправді більшість публічних SMTP-серверів більше не існує, оскільки це призводить до надмірного зловживання.

ви може бути в змозі знайти публічний SMTP, який не вимагає аутентифікації, але вони отримують рідкість. Ви завжди можете запустити власний smtp або просто ... додати аутентифікацію.

Особливо, якщо ви використовуєте gmail, ви можете просто передати свої облікові дані?