Mail com JSP

3 respostas
V

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

3 Respostas

M

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

ate mais…

L

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([email removido],[email removido],null,null,Assunto,Corpo da mensagem);

}

}
JSP:

<%@ taglib uri=<a href="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/email.tld">http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/email.tld</a>” 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("[email removido]","[email removido]",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>
eltonk

Você já instalou o Tomcat?

De uma olhada nos exemplos que acompanham ele :wink:

Criado 8 de janeiro de 2004
Ultima resposta 10 de jan. de 2004
Respostas 3
Participantes 4