Mail com JSP

Saudações! :twisted:

Gostaria de saber se existe em JSP alguma coisa como a função mail do php?..

algo como mail(TO,subject, message, header)

como faço isso no JSP ou em Java???

muito obirgado pela ajuda!!

Victor

Voce pode usar o javamail nesse no site http://www.guj.com.br tem um bom tutorial.

ate mais…

Victor,

Você pode usar uma classe e uma página JSP como estou lhe enviando, ou então criar uma TAGLIB, para envio de e-mail.
Abraços, Luis

CLASSE:
/*

  • Classe SendMail
    */
    package br.com.javasoft.email;

import java.util.StringTokenizer;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail {

static String smtpHost = null;

/**
 * Constructor
 */

public SendMail() {
smtpHost = “192.168.0.1”; // endereço IP do seu servidor de e-mail
}

/**
 * Envia uma mensagem de texto para um endereço de email
 * @param from remetente da mensagem
 * @param to destinatário da mensagem, podendo ter e-mails separados por ponto e virgula
 * @param subject assunto da mensagem
 * @param text texto da mensagem
 * @exception AddressException caso o endereço de destino não seja válido
 * @exception SendFailedException caso o envio falhe
 * @exception MessagingException caso ocorra algum outro tipo de erro
 *
 */
public boolean sendText(String from, String to, String subject, String text) {
	return sendText(from,to,null,null,subject,text);
}

/**
 * Envia uma mensagem de texto para um endereço de email
 * @param from remetente da mensagem
 * @param to destinatário da mensagem, podendo ter e-mails separados por ponto e virgula
  • @param cc carbon copy, podendo ter e-mails separados por ponto e virgula

  • @param bcc bondery carbon copy, podendo ter e-mails separados por ponto e virgula

    • @param subject assunto da mensagem
    • @param text texto da mensagem
    • @exception AddressException caso o endereço de destino não seja válido
    • @exception SendFailedException caso o envio falhe
    • @exception MessagingException caso ocorra algum outro tipo de erro

    */
    public boolean sendText(String from, String to,String cc,String bcc, String subject, String text) {

    boolean result = false;
    String errMsg = null;

    try {
    //Create the Java Mail session
    java.util.Properties properties = System.getProperties();
    if(SendMail.smtpHost != null) {
    properties.put(“mail.smtp.host”, SendMail.smtpHost);
    Session session = Session.getDefaultInstance(properties, null);
    // construct the message
    Message message = new MimeMessage(session);

       	message.setContent(text.toString(), "text/plain");
    

    message.setHeader(“Content-Transfer-Encoding”,“binary”);
    message.setHeader(“MIME-Version”,“1.0”);

       	if (from != null || !from.equals("")) {
       		message.setFrom(new InternetAddress(from));
       	}
       	else {
       		message.setFrom();
       	}
    

    //Set the to address
    String[] _to;
    String[] _cc;
    String[] _bcc;

    int n = 0;
    StringTokenizer st = new StringTokenizer(to,";");
    _to = new String[st.countTokens()];
    while (st.hasMoreTokens()) {
    _to[n++] = (st.nextToken());
    }
    for (int i = 0 ; i < _to.length ; i++) {
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(_to[i]));
    }
    if(cc!=null)
    {
    n = 0;
    st = new StringTokenizer(cc,";");
    _cc = new String[st.countTokens()];
    while (st.hasMoreTokens()) {
    _cc[n++] = (st.nextToken());
    }
    for (int i = 0 ; i < _cc.length ; i++) {
    message.addRecipient(Message.RecipientType.CC, new InternetAddress(_cc[i]));
    }
    }
    if(bcc!=null)
    {
    n = 0;
    st = new StringTokenizer(bcc,";");
    _bcc = new String[st.countTokens()];
    while (st.hasMoreTokens()) {
    _bcc[n++] = (st.nextToken());
    }
    for (int i = 0 ; i < _bcc.length ; i++) {
    message.addRecipient(Message.RecipientType.BCC, new InternetAddress(_bcc[i]));
    }
    }

       	message.setSubject(subject);
    
       	//Envia email como texto
    
       	//message.setHeader("X-Mailer", mailer);
       	message.setSentDate(new java.util.Date());
    
       	// send the thing off
       	Transport.send(message);
       	
       	result = true;
       }
    

    }
    catch(AddressException e) {
    System.err.println(“Erro no parsing do endereço.” + e.toString());
    errMsg = e.getMessage();
    }
    catch(SendFailedException e) {
    System.err.println(“Erro no envio da mensagem.” + e.toString());
    errMsg = e.getMessage();
    }
    catch(MessagingException e) {
    System.err.println(“Erro inesperado.” + e.toString());
    errMsg = e.getMessage();
    }
    catch(Exception e) {
    System.err.println(“Erro de sistema.” + e.toString());
    errMsg = e.getMessage();
    } finally{
    if (errMsg != null){
    throw new RuntimeException(“Falha de envio de email: \n”+errMsg);
    }
    }

    return result;
    }

public static void main(String[] args)
{
SendMail email = new SendMail();
email.sendText(“dequem@servidor.com.br”,“paraquem@outroservidor.com.br”,null,null,“Assunto”,“Corpo da mensagem”);
}
}

JSP:
<%@ taglib uri=“http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/email.tld” prefix=“email” %>
<%@ page contentType=“text/html;charset=windows-1252”%>
<jsp:useBean id=“email” class=“br.com.javasoft.email.SendMail” />
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=windows-1252”>
<title>
Envio de e-mail
</title>
</head>

<% boolean resultado = email.sendText("dequem@servidor.com.br","paraquem@outroservidor.com.br",null,null,"Assunto","Corpo da mensagem"); %>

<% if(resultado){ %>
<h2>
e-mail enviado com sucesso !
</h2>
<% }else{ %>
<h2>
Problemas no envio do e-mail
</h2>
<% } %>

</html>

Você já instalou o Tomcat?

De uma olhada nos exemplos que acompanham ele :wink: