package org.jboss.seam.mail.ui; import java.io.IOException; import javax.faces.FacesException; import javax.faces.context.FacesContext; import javax.mail.MessagingException; import javax.mail.internet.AddressException; import javax.mail.internet.MimeMessage; /** * JSF Component for rendering a from address */ public class UIFrom extends AddressComponent { @Override public void encodeBegin(FacesContext facesContext) throws IOException { try { MimeMessage mimeMessage = findMimeMessage(); if (mimeMessage.getFrom() != null && mimeMessage.getFrom().length > 0) { throw new AddressException("Email cannot have more than one from address", getAddress()); } mimeMessage.setFrom(getInternetAddress(facesContext)); } catch (AddressException e) { throw new FacesException(e.getMessage() +"(" + e.getRef() + ")", e); } catch (MessagingException e) { throw new FacesException(e.getMessage(), e); } } }