I am trying to send an email from an ionos email address in a spring project but I get this error even though I am sure the credentials are correct:
Exception in thread "Thread-1" org.springframework.mail.MailAuthenticationException: Authentication failed
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:440)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:361)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:356)
at de.hunt.huntbackend.service.EmailService.lambda$sendMail$0(EmailService.java:81)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: jakarta.mail.AuthenticationFailedException: 535 Authentication credentials invalid
These are the traces when run with spring.mail.properties.mail.debug=true
DEBUG: Jakarta Mail version 2.1.1
DEBUG: URL jar:file:/C:/Users/Jakob/.gradle/caches/modules-2/files-2.1/org.eclipse.angus/jakarta.mail/1.1.0/b08fae3faa47b941f03a79b9bcb6c6ab9dee8b7a/jakarta.mail-1.1.0.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/C:/Users/Jakob/.gradle/caches/modules-2/files-2.1/org.eclipse.angus/jakarta.mail/1.1.0/b08fae3faa47b941f03a79b9bcb6c6ab9dee8b7a/jakarta.mail-1.1.0.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPTransport=jakarta.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.pop3.POP3Store=jakarta.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], com.sun.mail.imap.IMAPSSLStore=jakarta.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.smtp.SMTPSSLTransport=jakarta.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.pop3.POP3SSLStore=jakarta.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=jakarta.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle]}
DEBUG: Providers Listed By Protocol: {imap=jakarta.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtp=jakarta.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], pop3=jakarta.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], imaps=jakarta.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], smtps=jakarta.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3s=jakarta.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: URL jar:file:/C:/Users/Jakob/.gradle/caches/modules-2/files-2.1/org.eclipse.angus/jakarta.mail/1.1.0/b08fae3faa47b941f03a79b9bcb6c6ab9dee8b7a/jakarta.mail-1.1.0.jar!/META-INF/javamail.address.map
DEBUG: successfully loaded resource: jar:file:/C:/Users/Jakob/.gradle/caches/modules-2/files-2.1/org.eclipse.angus/jakarta.mail/1.1.0/b08fae3faa47b941f03a79b9bcb6c6ab9dee8b7a/jakarta.mail-1.1.0.jar!/META-INF/javamail.address.map
DEBUG: getProvider() returning jakarta.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.ionos.com", port 465, isSSL true
220 perfora.net (mreueus002) Nemesis ESMTP Service ready
DEBUG SMTP: connected to host "smtp.ionos.com", port: 465
EHLO host.docker.internal
250-perfora.net Hello host.docker.internal [91.23.54.20]
250-8BITMIME
250-AUTH LOGIN PLAIN
250 SIZE 140000000
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "SIZE", arg "140000000"
DEBUG SMTP: STARTTLS requested but already using SSL
DEBUG SMTP: protocolConnect login, host=smtp.ionos.com, [email protected], password=<non-null>
DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM XOAUTH2
DEBUG SMTP: Using mechanism LOGIN
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN failed
This is my application.properties
spring.mail.host=smtp.ionos.com
spring.mail.port=465
[email protected]
spring.mail.password=apassword
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.ssl.trust=smtp.ionos.com
This is my code for sending the mails:
new Thread(() -> {
try {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, "utf-8");
helper.setSubject(subject);
helper.setFrom(emailId);
helper.setTo(to);
helper.setText(text, true);
mailSender.send(msg);
logger.log("Sent email to '" + to + "' with subject '" + subject + "'");
} catch (MessagingException e) {
logger.logError(e);
}
}).start();