Configuration email pour envoi via exchange

Bonjour,

j'ai pris un email avec exchange de chez ovh.

Je t'ente d'envoyer un mail une application spring boot sur mon serveur vps

spring.mail.properties.from=test@xxxxxxxx.com
#spring.mail.properties.from.alias=test
spring.mail.username=admin@xxxxxxxx.com
spring.mail.password=xxxxxxxx
spring.mail.host=ssl0.ovh.net
spring.mail.port=587

spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

Lors de l'envoie, j'ai l'erreur

> Caused by: org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException: 535 5.7.1 Authentication failed

> at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:440)
> at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:323)
> at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:312)
> at com.example.demo.mail.MailService.sendTextMail(MailService.java:52)
> at com.example.demo.DemoApplication.main(DemoApplication.java:16)
> … 8 more
> Caused by: javax.mail.AuthenticationFailedException: 535 5.7.1 Authentication failed

> at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:947)
> at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:858)
> at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:762)
> at javax.mail.Service.connect(Service.java:342)
> at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:518)
> at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:437)
> … 12 more

C'est le même login et password que j'utilise pour me connecter au webmail de ovh.

Dois-je configurer autre chose?

En ajoutant une propriété test à la config de mail de spring boot

> t available
> at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:224) ~[spring-beans-5.3.20.jar!/:5.3.20]
> at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117) ~[spring-beans-5.3.20.jar!/:5.3.20]
> at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:311) ~[spring-beans-5.3.20.jar!/:5.3.20]
> … 26 common frames omitted
> Caused by: java.lang.IllegalStateException: Mail server is not available
> at org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration.validateConnection(MailSenderValidatorAutoConfiguration.java:52) ~[spring-boot-autoconfigure-2.7.0.jar!/:2.7.0]
> at org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration.(MailSenderValidatorAutoConfiguration.java:44) ~[spring-boot-autoconfigure-2.7.0.jar!/:2.7.0]
> at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
> at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
> at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
> at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[na:na]
> at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211) ~[spring-beans-5.3.20.jar!/:5.3.20]
> … 28 common frames omitted
> Caused by: javax.mail.AuthenticationFailedException: 535 5.7.1 Authentication failed

> at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:947) ~[jakarta.mail-1.6.7.jar!/:1.6.7]
> at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:858) ~[jakarta.mail-1.6.7.jar!/:1.6.7]
> at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:762) ~[jakarta.mail-1.6.7.jar!/:1.6.7]
> at javax.mail.Service.connect(Service.java:342) ~[jakarta.mail-1.6.7.jar!/:1.6.7]
> at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:518) ~[spring-context-support-5.3.20.jar!/:5.3.20]
> at org.springframework.mail.javamail.JavaMailSenderImpl.testConnection(JavaMailSenderImpl.java:398) ~[spring-context-support-5.3.20.jar!/:5.3.20]
> at org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration.validateConnection(MailSenderValidatorAutoConfiguration.java:49) ~[spring-boot-autoconfigure-2.7.0.jar!/:2.7.0]
> … 34 common frames omitted

Bonjour,


spring.mail.properties.from=test@xxxxxxxx.com
spring.mail.username=admin@xxxxxxxx.com

ça c'est pas normale, ça doit être la même chose normalement.

Cordialement, janus57

j'ai mis la même valeur, ça ne change rien

testé avec le port 587 et 485, même résultat

les ports sont bien ouverts
sudo firewall-cmd --zone=public --list-ports
80/tcp 443/tcp 465/tcp 587/tcp 8080/tcp

niveau dns j'ai pour les email

MX 1 ex.mail.ovh.ca
SPF "v=spf1 include:mx.ovh.ca ~all"


C'est le même login et password que j'utilise pour me connecter au webmail de ovh.


Votre serveur SMTP ce ne serait pas ex.mail.ovh.ca plutôt que ssl0.ovh.net ?

outlook


outlook


désolé j'ai modifié le post au-dessus pendant que vous répondiez

tenté de mettre

spring.mail.host=ex.mail.ovh.ca
spring.mail.port=587

mais j'obtiens cette erreur

> Caused by: org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.60 SMTP; Client does not have permissions to send as this sender
> ; message exceptions (1) are:
> Failed message 1: com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.60 SMTP; Client does not have permissions to send as this sender

Bonjour,


Client does not have permissions to send as this sender

ça c'est typique d'une tentative de spoofing en envoyant un mail avec un alias (ce qui est impossible, il faut un vrai compte mail et pas un alias chez OVH).

Cordialement, janus57


Client does not have permissions to send as this sender


C'est lié avec ce qui vous a été expliqué plus haut:

Bonjour,

> spring.mail.properties.from=test@xxxxxxxx.com
> spring.mail.username=admin@xxxxxxxx.com

ça c'est pas normale, ça doit être la même chose normalement.

tel que déjà écrit, j'ai mis la même valeur et c'est la même erreur

avec

spring.mail.host=ex.mail.ovh.ca
spring.mail.port=443

> Mail server is not available




niveau dns

MX 1 ex.mail.ovh.ca.
SPF "v=spf1 a include:mx.ovh.ca ~all"
_autodiscover._tcp IN SRV 443 ex.mail.ovh.ca.

config généré par ovh…


tel que déjà écrit, j'ai mis la même valeur et c'est la même erreur

avec

spring.mail.host=ex.mail.ovh.ca
spring.mail.port=443


Pourquoi 443 ? C'est un port https, ça.
Il n'est pas destiné à faire du SMTP !
Utilisez 587.


> ~# telnet ex.mail.ovh.ca 587
> Trying 192.95.3.2...
> Connected to ex.mail.ovh.ca.
> Escape character is '^]'.
> 220 ex.mail.ovh.ca Microsoft ESMTP MAIL Service ready at Fri, 3 Jun 2022 09:09:53 -0400
> quit
> 221 2.0.0 Service closing transmission channel
> Connection closed by foreign host.

mail.properties.from


cela a fonctionné en mettant le port a 587 et a forcant une valeur pour le from, alors que sur 3 autres serveur autre que ovh, ça fonctionne sans cela...

merci

Bonjour,

Bah normalement il faut un from valide sinon le serveur est pas content.
Dans le cas de OVH le from doit obligatoirement être le même que l'adresse mail sui doit être exactement le même que le login.

Cordialement, janus57