20.2. Receiving emails

If you use Enterprise JavaBeans (EJB), you can use a MDB (Message Driven Bean) to receive email. JBoss provides a JCA adaptor (mail-ra.rar). You can configure mail-ra.rar like this:
@MessageDriven(activationConfig={
@ActivationConfigProperty(propertyName="mailServer", 
                          propertyValue="localhost"),
@ActivationConfigProperty(propertyName="mailFolder", 
                          propertyValue="INBOX"),
@ActivationConfigProperty(propertyName="storeProtocol", 
                          propertyValue="pop3"),
@ActivationConfigProperty(propertyName="userName", 
                          propertyValue="seam"),
@ActivationConfigProperty(propertyName="password", 
                          propertyValue="seam")
})
@ResourceAdapter("mail-ra.rar")
@Name("mailListener")
public class MailListenerMDB implements MailListener {

    @In(create=true)
    private OrderProcessor orderProcessor;

    public void onMessage(Message message) {
        // Process the message
        orderProcessor.process(message.getSubject());
    }
    
}
Each message received calls onMessage(Message message). Most Seam annotations work inside a MDB, but you must not access the persistence context.