Enviar e-mail em jsp
Autor:Eve Cole
Data da Última Atualização:2009-07-02 17:13:09
Enviar e-mail em jsp
1. Podemos enviar e-mail por meio de qualquer mecanismo JSP (como JSWDK) que suporte o pacote sun.net.smtp na especificação sun.
(Aviso: use o pacote interno de especificações da Sun, que afetará a portabilidade do seu programa jsp.)
O scriptlet a seguir usa a classe SmtpClient para enviar emails em arquivos jsp.
2. JavaMail é a API oficial de correio Java, consulte http://java.sun.com/products/javamail/. Embora a API seja mais rica ou complexa que sun.net.smtp.SmtpClient, ela é portátil. Uma classe MailSender é recriada aqui, que contém a API JavaMail. Conforme mostrado abaixo:
// prefixo ms_ é para variáveis da classe MailSender
// prefixo str é para String
// prefixo astr é para array de Strings
// O prefixo strbuf é para StringBuffers, etc.
remetente de correio público (
String strFrom, // remetente
String[] astrTo, // destinatário(s)
String[] astrBCC, // destinatário(s) Cco, opcional
String strSubject, // assunto
depuração booleana)
{
ms_strFrom = strFrom; // de quem é a mensagem
ms_astrTo = astrTo; // para quem (plural) a mensagem é enviada
ms_debugging = debugging; // para quem (plural) a mensagem é enviada
//define o host
Propriedades adereços = new Propriedades();
props.put("mail.smtp.host", ms_strSMTPHost);
//cria algumas propriedades e obtém a Sessão padrão
Sessão sessão = Session.getDefaultInstance(props, null);
session.setDebug(ms_debugging);
tentar {
//cria uma mensagem
ms_msg = new MimeMessage(sessão);
//define o de
EndereçoInternet de = novo EndereçoInternet(strFrom);
ms_msg.setFrom(de);
//define o como
EndereçoInternet[] endereço = novo EndereçoInternet[astrTo.length];
for (int i = 0; i astrTo.length; ++i)
{
endereço[i] = novo InternetAddress(astrTo[i]);
}
ms_msg.setRecipients(Message.RecipientType.TO, endereço);
//define os destinatários Cco
if (astrBCC! = nulo)
{
endereço = novo InternetAddress[astrBCC.length];
para (int i = 0; i astrBCC.length; ++i)
{
eh.dbg("astrBCC[" + i + "] é: '" + astrBCC[i] + "'");
endereço[i] = novo InternetAddress(astrBCC[i]);
}
ms_msg.setRecipients(Message.RecipientType.BCC, endereço);
}
//define o assunto
ms_msg.setSubject(strSubject);
// configura o buffer de string que armazenará a mensagem
ms_strbufMsg = new StringBuffer();
} catch (MessagingException mex) {
mex.printStackTrace(System.err);
} catch (Exceção ex) {
ex.printStackTrace(System.err);
}
}
público void ms_add(String strTexto)
{
ms_strbufMsg.append(strText);
}
público vazio ms_send()
{
tentar {
//define o conteúdo como texto simples
ms_msg.setContent(new String(ms_strbufMsg), "texto/simples");
// e fora
Transporte.send(ms_msg);
} catch (Exceção ex) {
System.out.println("Exceção capturada em MailSender.ms_send: " + ex);
}
}