Seguinte, criei uma classe Mail que servirá de componete. Injeto em um atributo Renderer com @In. Na classe ( Usuario ) que eu vou usar eu injeto o um atributo da primeira classe que criei com @In(create=true) ( Mail ). Pronto… a partir daí eu conseguí fazer o envio com sucesso.
Não sei se fui bem claro, mais qualquer coisa, fala aí…
O renderer sempre virá null se não for incluida a biblioteca jboss-seam-ui.jar no WEB-INF/lib da aplicação. Quem instancia o renderer é o org.jboss.seam.ui.facelet.FaceletsRenderer
Antes de mais nada, me desculpe por ressuscitar esse tópico, mas há uns três dias, quebro a cabeça com isso.
Tem jeito de postar um exemplo de como resolveste? Estou tentando aqui e, por mais que eu esperneie, fico sempre tomando o erro "Could not connect to SMTP host: localhost, port: 25". Não sei onde, diabos, está configurada a tal porta 25, já que a estou alterando, no mail-service.xml, para a 465. Estou usando JBoss 4.2.3 e este é meu mail-service.xml:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.mail.MailService" name="jboss:service=Mail">
<attribute name="JNDIName">java:/Mail</attribute>
<attribute name="User">meuemail@gmail.com</attribute>
<attribute name="Password">minhasenha</attribute>
<attribute name="Configuration">
<configuration>
<property name="mail.smtp.auth" value="true" />
<property name="mail.smtp.starttls.enable" value="true" />
<property name="mail.smtp.socketFactory.class" value="javax.net.ssl.SSLSocketFactory" />
<!-- Change to your mail server prototocol -->
<property name="mail.store.protocol" value="pop3" />
<property name="mail.transport.protocol" value="smtp" />
<!-- Change to the user who will receive mail -->
<property name="mail.user" value="nobody" />
<!-- Change to the SMTP gateway server -->
<property name="mail.smtp.host" value="smtp.gmail.com" />
<!-- The mail server port -->
<property name="mail.smtp.port" value="465" />
<!-- Change to the address mail will be from -->
<property name="mail.from" value="meuemailDeRemetente" />
<!-- Enable debugging output from the javamail classes -->
<property name="mail.debug" value="false" />
<property name="mail.smtp.user" value="meuUsuarioGmail" />
<property name="mail.smtp.password" value="minhaSenhaGmail" />
<property name="mail.smtp.ssl.enable" value="true" />
</configuration>
</attribute>
<depends>jboss:service=Naming</depends>
</mbean>
</server>
Este é meu código java que dispara o e1/2 :
public boolean enviarEmail() throws InfraEstruturaException {
try {
System.out.println(mailSession);
renderer.render("/emailModelo_lembreteDeSenha.xhtml");
facesMessages.add(FacesMessage.SEVERITY_INFO, "NÃO É QUE DEU CERTO?");
return true;
} catch (Exception e) {
System.out.println("Email falhou: " + e.getMessage());
facesMessages.add(FacesMessage.SEVERITY_INFO, "Email falhou: " + e.getMessage());
return false;
}
}