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