Boa noite galera!
Estou desenvolvendo um site e apanhando para enviar dados de um formulário por email com JSP.
Pesquisei em alguns tópicos do fórum, mas continuo com dúvida. Estou meio perdido (completamente rsrs).
No momento em que o botão “enviar” é clicado, ocorre o seguinte erro:
java.lang.NoClassDefFoundError: javax.mail/Authenticator
*Eu baixei a versão 1.4.5 do JavaMail API
Segue minhas classes:
Enviar.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="send.Send" %>
<%@ page import="send.SendEmail" %>
<%@ page import="send.*" %>
<%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<jsp:useBean id="send" scope="session" class="send.Send" />
<jsp:useBean id="sendEmail" scope="session" class="send.SendEmail" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Envia Email</title>
</head>
<body>
<%
try{
String nome = request.getParameter("nome");
String email = request.getParameter("email");
String assunto = request.getParameter("assunto");
String mensagem = request.getParameter("mensagem");
SendEmail enviar = new SendEmail();
enviar.sendEmail(nome, email, assunto, mensagem);
%>
<p>Enviado com Sucesso!</p>
<%
} catch(AddressException e){ %>
<p>Endereço de e-mail inválido!</p>
<%}
catch(MessagingException e){ %>
<p>Impossível enviar o e-mail!</p>
<%} %>
</body>
</html>
Código do tópico - http://www.guj.com.br/java/87637-api-java-mail---usando-o-gmaill
SendEmail.java
[code]import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class SendMail {
private String mailSMTPServer;
private String mailSMTPServerPort;
SendMail() {
mailSMTPServer = "smtp.gmail.com";
mailSMTPServerPort = "465";
}
SendMail(String mailSMTPServer, String mailSMTPServerPort) {
this.mailSMTPServer = mailSMTPServer;
this.mailSMTPServerPort = mailSMTPServerPort;
}
public void sendMail(String from, String to, String subject, String message) {
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.host", mailSMTPServer);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.user", from);
props.put("mail.debug", "true");
props.put("mail.smtp.port", mailSMTPServerPort);
props.put("mail.smtp.socketFactory.port", mailSMTPServerPort);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
SimpleAuth auth = null;
auth = new SimpleAuth ("seuusuarioparalogin","suasenhaparalogin");
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(true);
Message msg = new MimeMessage(session);
try {
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setFrom(new InternetAddress(from));
msg.setSubject(subject);
msg.setContent(message,"text/plain");
} catch (Exception e) {
System.out.println(">> Erro: Completar Mensagem");
e.printStackTrace();
}
Transport tr;
try {
tr = session.getTransport("smtp");
tr.connect(mailSMTPServer, "seuusuarioparalogin", "suasenhaparalogin");
msg.saveChanges();
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
} catch (Exception e) {
System.out.println(">> Erro: Envio Mensagem");
e.printStackTrace();
}
}
}
[/code]
SimpleAuth.java
class SimpleAuth extends Authenticator {
public String username = null;
public String password = null;
public SimpleAuth(String user, String pwd) {
username = user;
password = pwd;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication (username,password);
}
}
Obrigado.