package org.jboss.seam.example.mail;
import java.net.URL;
import javax.faces.application.FacesMessage;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.core.ResourceLoader;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.faces.Renderer;
import org.jboss.seam.log.Log;
@Name("mailExample")
@Scope(ScopeType.CONVERSATION)
public class MailExample
{
@Logger
private Log log;
@In
private FacesMessages facesMessages;
@In
private Renderer renderer;
@In
private AsynchronousMailProcessor asynchronousMailProcessor;
@In(create=true)
private Person person;
public void send() {
try {
renderer.render("/simple.xhtml");
facesMessages.add("Email sent successfully");
} catch (Exception e) {
log.error("Error sending mail", e);
facesMessages.add(FacesMessage.SEVERITY_INFO, "Email sending failed: " + e.getMessage());
}
}
public void sendAttachment() {
try {
renderer.render("/attachment.xhtml");
facesMessages.add("Email sent successfully");
} catch (Exception e) {
log.error("Error sending mail", e);
facesMessages.add(FacesMessage.SEVERITY_INFO, "Email sending failed: " + e.getMessage());
}
}
public void sendHtml() {
try {
renderer.render("/html.xhtml");
facesMessages.add("Email sent successfully");
} catch (Exception e) {
log.error("Error sending mail", e);
facesMessages.add("Email sending failed:" + e.getMessage());
}
}
public void sendPlain() {
try {
renderer.render("/plain.xhtml");
facesMessages.add("Email sent successfully");
} catch (Exception e) {
log.error("Error sending mail", e);
facesMessages.add("Email sending failed: " + e.getMessage());
}
}
public void sendTemplate() {
try {
renderer.render("/templating.xhtml");
facesMessages.add("Email sent successfully");
} catch (Exception e) {
log.error("Error sending mail", e);
facesMessages.add("Email sending failed: " + e.getMessage());
}
}
public void sendAsynchronous() {
asynchronousMailProcessor.scheduleSend(3000, person);
}
@Factory("numbers")
public URL getFile()
{
return ResourceLoader.instance().getResource("/numbers.csv");
}
}