Я использую следующий код для отправки почты изJavaMail исключения API - аутентификация требуется
public class Test {
private String SMTP_HOST_NAME = "smtp.bizmail.yahoo.com";
private String SMTP_AUTH_USER = "[email protected]";
private String SMTP_AUTH_PWD = "mypassword";
private String SMTP_MAIL_PORT = "587";
public void postMail(String recipient, String subject, String message)
{
Properties props = new Properties();
SMTPAuthenticator authenticator = new SMTPAuthenticator();
props.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.host", SMTP_HOST_NAME);
props.setProperty("mail.smtp.port", SMTP_MAIL_PORT);
props.setProperty("mail.smtp.starttls.enable","true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.debug", "true");
Session session = Session.getInstance(props, authenticator);
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(SMTP_AUTH_USER));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(recipient));
msg.setSubject(subject);
msg.setContent(message, "text/html");
Transport.send(msg);
System.out.println("Email send successfully Done");
} catch (Exception e) {
e.printStackTrace();
}
}
private class SMTPAuthenticator extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
String username = SMTP_AUTH_USER;
String password = SMTP_AUTH_PWD;
return new PasswordAuthentication(username, password);
}
}
public static void main(String[] args) {
Test s = new Test();
s.postMail("[email protected]", "Test Subject", "Test Mail");
}
}
Из выше коды я могу отправить почту успешно, но теперь я получаю исключение
javax.mail.MessagingException: 530 5.7.1 Authentication required
ли там какие-либо изменения в SMTP-сервере Yahoo или что-то еще
Вот стопстрак
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG: SMTPTransport trying to connect to host "smtp.bizmail.yahoo.com", port 587
DEBUG SMTP RCVD: 220 smtp.bizmail.yahoo.com ESMTP ready
DEBUG: SMTPTransport connected to host "smtp.bizmail.yahoo.com", port: 587
DEBUG SMTP SENT: EHLO ET-3-PC
DEBUG SMTP RCVD: 250-smtp.bizmail.yahoo.com
250-PIPELINING
250-SIZE 41697280
250-8 BITMIME
250 STARTTLS
DEBUG SMTP Found extension "PIPELINING", arg ""
DEBUG SMTP Found extension "SIZE", arg "41697280"
DEBUG SMTP Found extension "8", arg "BITMIME"
DEBUG SMTP Found extension "STARTTLS", arg ""
DEBUG SMTP: use8bit false
DEBUG SMTP SENT: MAIL FROM:<[email protected]>
DEBUG SMTP RCVD: 530 5.7.1 Authentication required
DEBUG SMTP SENT: QUIT
javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.MessagingException: 530 5.7.1 Authentication required
at javax.mail.Transport.send0(Transport.java:219)
at javax.mail.Transport.send(Transport.java:81)
at com.einsteiner.util.SendMailToUser.postMail(SendMailToUser.java:67)
at com.einsteiner.util.SendMailToUser.main(SendMailToUser.java:197)
где вы получаете исключение? –
Ваши учетные данные могут быть недействительными. Также может быть так, что они отказываются от ваших соединений таким образом. – Makoto
@Makoto Раньше я могу успешно отправлять почту без каких-либо ошибок. Но теперь я получаю это исключение. При запуске кода я заменяю имя пользователя и пароль на фактические. По причинам, о которых я упомянул здесь test.com или domain.com – vishal