Le service d'envoi de courriers électroniques a été initialement développé pour le gestionnaire d'exceptions (certaines implémentations permettent d'envoyer les rapports d'exception par courrier électronique). Ce service est disponible à toute autre fin (envoi d'informations, remontée d'alertes, ...).


Sommaire :


Implémentations

esup-commons prévoit plusieurs implémentations du service d'envoi de mails :

C'est cette dernière implémentation qui est généralement conseillée.

Configuration

Le service d'envoi de mail se configure à l'aide du fichier /properties/smtp/smtp.xml.

Exemple de déclaration :

<bean 
    	id="smtpService" 
    	class="org.esupportail.commons.services.smtp.AsynchronousSmtpServiceImpl" 
    	lazy-init="true"
    	>
        <property name="servers">
			<list>
				<ref bean="smtpServer" />
			</list>
		</property>
		<property name="fromAddress" ref="smtpFromAddress" />
		<property name="interceptAll" value="${smtp.interceptAll}" />
		<property name="interceptAddress" ref="smtpIntercept" />
		<property name="notInterceptedAddresses" value="${smtp.notInterceptedAddresses}" />
		<property name="testAddress" ref="smtpTestAddress" />
		<property name="charset" value="${smtp.charset}" />
    </bean>

Propriétés :

Les beans smtpFromAddress, smtpInterceptAddress et testAddress sont tous de type javax.mail.internet.InternetAddress.

Exemple de déclaration :

<bean
  id="smtpFromAddress"
  class="javax.mail.internet.InternetAddress">
    <property name="address" value="webmaster@domain.org" />
    <property name="personal" value="WebMaster" />
</bean>

Propriétés :

Les beans listés dans la propriété Servers de smtpService sont tous de type org.esupportail.commons.services.smtp.SmtpServer.

Exemple de déclaration :

<bean
  id="smtpServer1"
  class="org.esupportail.commons.services.smtp.SmtpServer">
    <property name="host" value="smtp.domain.org"/>
    <property name="port" value="25"/>
    <property name="user" value=""/>
    <property name="password" value=""/>
</bean>

Propriétés :

Utilisation

Pour qu'un de vos beans puisse utiliser le service d'envoi de mails il faut qu'il ait une référence, définie dans le fichier de configuration Spring, sur un smtpService.

Ensuite il peut utiliser ce service, par exemple :

smtpService.send(to, emailSubject, htmlBody, textBody);