Olá, gostaria de saber se esta implementacao que fiz aqui no trabalho está correta, ou se há uma forma mais simples e eficiente para implementar o envio de email em java.
[code]import java.util.Date;
import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/*
-
Marcio Nogueira
*/
public class EnviaEmail {
private Session session;
private Properties prop = new Properties();
private MimeMessage msg = new MimeMessage(session);
private String subject,text;
public EnviaEmail(){}
public void enviaEmail() throws AddressException, MessagingException
{
try
{
prop.put(“mail.smtp.host”, “mail.tvbrasil.org.br”);
session.getInstance(prop);
msg.setFrom(new InternetAddress("nos@tvbrasil.org.br"));
msg.setSentDate(new Date());
msg.setSubject(subject);
msg.setText(text);
Transport.send(msg);
}
catch(Exception e)
{
e.getMessage();
}
}
}
[/code]
um abraco, muito obrigado.
Você esqueceu o destinatário do e-mail:
Se você usa um servidor de aplicações, pode configurá-lo e já buscar essa session com as propriedades de e-mail configuradas. Por exemplo, no tomcat:
web.xml (da aplicação:
<resource-ref>
<description>
Resource reference to a factory for javax.mail.Session
instances that may be used for sending electronic mail
messages, preconfigured to connect to the appropriate
SMTP server.
</description>
<res-ref-name>
mail/Session
</res-ref-name>
<res-type>
javax.mail.Session
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
server.xml:
<Resource auth="Container" name="mail/Session" type="javax.mail.Session"/>
<ResourceParams name="mail/Session">
<parameter>
<name>mail.smtp.host</name>
<value>servidor.smtp.com.br</value>
</parameter>
</ResourceParams>
e no método você pega a session:
InitialContext ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:/comp/env");
Session session = (Session) envContext.lookup("mail/Session");
Existem vários parâmetros que podem ser configurados, como autenticação, por exemplo.