Je me bats avec cela depuis plusieurs heures aujourd'hui. J'ai commencé avec la documentation au http://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html#_sending_mails qui ne dit pas vraiment beaucoup sur les étapes spécifiques. Il dit simplement que le développeur peut inclure un code Bean XML, puis autowire MailSender
. J'ai essayé cela ainsi que de nombreuses variantes et je n'ai pas réussi à le faire fonctionner avec Spring-Cloud-aws. J'ai finalement eu recours directement à aws-java-sdk-ses et à la configuration manuelle de la classe.Quelles sont les étapes de configuration requises pour qu'une application Spring Boot envoie des e-mails simples via AWS SES?
Voici un projet simple ce que j'ai manifestaient essayé: https://github.com/deinspanjer/aws-ses-test
Ce projet compile, mais quand je le lance je reçois:
Parameter 0 of constructor in com.example.awssestest.AwsSesTestApplication required a bean of type 'org.springframework.mail.MailSender' that could not be found.
- Bean method 'mailSender' not loaded because @ConditionalOnClass did not find required class 'javax.mail.internet.MimeMessage'
- Bean method 'simpleMailSender' not loaded because @ConditionalOnClass did not find required class 'com.amazonaws.services.simpleemail.AmazonSimpleEmailService'
- Bean method 'javaMailSender' not loaded because @ConditionalOnClass did not find required class 'com.amazonaws.services.simpleemail.AmazonSimpleEmailService'
Si je tente d'ajouter javax-mail (https://github.com/deinspanjer/aws-ses-test/tree/try-with-javax-mail-api) alors les changements d'erreur à:
Parameter 0 of constructor in com.example.awssestest.AwsSesTestApplication required a bean of type 'org.springframework.mail.MailSender' that could not be found.
- Bean method 'mailSender' not loaded because AnyNestedCondition 0 matched 2 did not; NestedCondition on MailSenderAutoConfiguration.MailSenderCondition.JndiNameProperty @ConditionalOnProperty (spring.mail.jndi-name) did not find property 'jndi-name'; NestedCondition on MailSenderAutoConfiguration.MailSenderCondition.HostProperty @ConditionalOnProperty (spring.mail.host) did not find property 'host'
- Bean method 'simpleMailSender' not loaded because @ConditionalOnClass did not find required class 'com.amazonaws.services.simpleemail.AmazonSimpleEmailService'
- Bean method 'javaMailSender' not loaded because @ConditionalOnClass did not find required class 'com.amazonaws.services.simpleemail.AmazonSimpleEmailService'
Si au contraire, j'essayer d'ajouter explicitement une dépendance sur SSFE-java-sdk-ses (https://github.com/deinspanjer/aws-ses-test/tree/try-with-aws-java-sdk-ses), je reçois cette erreur à la place:
Parameter 0 of constructor in com.example.awssestest.AwsSesTestApplication required a bean of type 'org.springframework.mail.MailSender' that could not be found.
- Bean method 'mailSender' not loaded because @ConditionalOnClass did not find required class 'javax.mail.internet.MimeMessage'
- Bean method 'javaMailSender' in 'MailSenderAutoConfiguration' not loaded because @ConditionalOnClass did not find required class 'javax.mail.Session'
- Bean method 'simpleMailSender' in 'MailSenderAutoConfiguration' not loaded because @ConditionalOnMissingClass found unwanted class 'org.springframework.cloud.aws.mail.simplemail.SimpleEmailServiceJavaMailSender'
Pour cette erreur, j'ai essayé d'ajouter une annotation @Qualifier("simpleMailSender")
au @Autowired
, mais il n'a pas aidé.
J'espère que quelqu'un pourrait me diriger dans la bonne direction.
Il semble qu'il vous manque d'importer le @ImportResource ("/ aws-mail.xml") sur votre classe AwsSesTestApplication. – skadya
J'ai juste essayé d'ajouter cette annotation à la classe d'application, mais cela ne change pas le message d'erreur. – deinspanjer