Enviar correo electrónico en jsp
Autor:Eve Cole
Fecha de actualización:2009-07-02 17:13:09
Enviar correo electrónico en jsp
1. Podemos enviar correo a través de cualquier motor JSP (como JSWDK) que admita el paquete sun.net.smtp en la especificación Sun.
(Advertencia: utilice el paquete de especificaciones interno integrado de Sun, que afectará la portabilidad de su programa jsp).
El siguiente scriptlet utiliza la clase SmtpClient para enviar correos electrónicos en archivos jsp.
2. JavaMail es la API de correo oficial de Java; consulte http://java.sun.com/products/javamail/. Aunque la API es más rica o compleja que sun.net.smtp.SmtpClient, es portátil. Aquí se recrea una clase MailSender, que contiene la API JavaMail. Como se muestra a continuación:
// el prefijo ms_ es para variables de clase MailSender
// el prefijo str es para String
// el prefijo astr es para una matriz de cadenas
// el prefijo strbuf es para StringBuffers, etc.
remitente de correo público (
Cadena strFrom, // remitente
String[] astrTo, // destinatario(s)
String[] astrBCC, // destinatario(s) bcc, opcional
Cadena strSubject, // asunto
depuración booleana)
{
ms_strFrom = strFrom; // de quién es el mensaje
ms_astrTo = astrTo; // a quién (plural) va dirigido el mensaje
ms_debugging = depuración; // a quién (plural) va dirigido el mensaje
// configura el host
Propiedades accesorios = nuevas Propiedades();
props.put("mail.smtp.host", ms_strSMTPHost);
// crea algunas propiedades y obtiene la sesión predeterminada
Sesión sesión = Session.getDefaultInstance(props, null);
sesión.setDebug(ms_debugging);
intentar {
//crea un mensaje
ms_msg = nuevo MimeMessage(sesión);
// establece el desde
Dirección de Internet de = nueva Dirección de Internet (strFrom);
ms_msg.setFrom(de);
// establece el
Dirección de Internet[] dirección = nueva Dirección de Internet[astrTo.length];
para (int i = 0; i astrTo.length; ++i)
{
dirección[i] = nueva dirección de Internet(astrTo[i]);
}
ms_msg.setRecipients(Message.RecipientType.TO, dirección);
// establece los destinatarios en CCO
si (astrBCC! = nulo)
{
dirección = nueva dirección de Internet[astrBCC.length];
para (int i = 0; i astrBCC.length; ++i)
{
eh.dbg("astrBCC[" + i + "] es: '" + astrBCC[i] + "'");
dirección[i] = nueva dirección de Internet(astrBCC[i]);
}
ms_msg.setRecipients(Message.RecipientType.BCC, dirección);
}
//establecer el asunto
ms_msg.setSubject(strSubject);
// configura el buffer de cadena que contendrá el mensaje
ms_strbufMsg = nuevo StringBuffer();
} captura (MessagingException mex) {
mex.printStackTrace(System.err);
} captura (Excepción ex) {
ex.printStackTrace(System.err);
}
}
público vacío ms_add (cadena strText)
{
ms_strbufMsg.append(strText);
}
público vacío ms_send()
{
intentar {
// establece el contenido como texto sin formato
ms_msg.setContent(new String(ms_strbufMsg), "texto/plain");
// y lejos
Transporte.send(ms_msg);
} captura (Excepción ex) {
System.out.println("Excepción detectada en MailSender.ms_send: " + ex);
}
}