Spring Mail - pinguet62/JSFring GitHub Wiki

Spring: Mail

Utilisation de Java Mail avec Spring.

Maven

<properties>
	<spring.version>4.0.6.RELEASE</spring.version>
</properties>
<!-- ... -->
<dependencies>
	<dependency>
		<groupId>javax.mail</groupId>
		<artifactId>mail</artifactId>
		<version>1.5.0-b01</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context-support</artifactId>
		<version>${spring.version}</version>
	</dependency>
<dependencies>

Configuration

Pour Gmail :

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
	<property name="host" value="smtp.gmail.com" />
	<property name="port" value="587" />
	<property name="username" value="" />
	<property name="password" value="" />
	<property name="javaMailProperties">
		<props>
			<prop key="mail.smtp.auth">true</prop>
			<prop key="mail.smtp.starttls.enable">true</prop>
			<prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop>
		</props>
	</property>
</bean>

Utilisation

Simple

  1. Attribut :

    @Autowired
    private MailSender mailSender;
  2. Message :

    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom("[email protected]");
    message.setTo("[email protected]");
    message.setCc("[email protected]");
    message.setSubject("Subject");
    message.setText("Text");
  3. Envoi :

    mailSender.send(message);

Template

Il est possible de déclarer des messages par défaut.

  1. Bean :

    <bean id="forgottenPasswordMessage" class="org.springframework.mail.SimpleMailMessage">
    	<property name="from" value="[email protected]" />
    	<property name="subject" value="[Dictionary] SMPT test" />
    	<property name="text">
    		<value>
    			<![CDATA[
    				Hello %s
    			]]>
    		</value>
    	</property>
    </bean>
  2. Attribut :

    @Autowired
    private SimpleMailMessage templateMessage;
  3. Utilisation :

    SimpleMailMessage message = new SimpleMailMessage(templateMessage);
    message.setText(String.format(templateMessage.getText(),
                                  "Jean"));
    mailSender.send(message);

Bundle Messages

  1. Bean :

    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    	<property name="basename">
    		<value>fr.pinguet62.dictionary.messages</value>
    	</property>
    </bean>

    où les fichiers de propriétés ont pour chemin resources/fr/pinguet62/dictionary/messages.properties

  2. Attribut :

    @Autowired
    private MessageSource messageSource;
  3. Utilisation :

    String key = "forgottenPassword.messages.emailUnknown";
    String[] args = { ... }
    Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
    String message = messageSource.getMessage(key, args, locale);
⚠️ **GitHub.com Fallback** ⚠️