Enviar email por servlet

olá, sou novo em java e servlet, e gostaria de fazer um simples formulario, onde a pessoa coloca somente o email, e ele manda um email pra essa pessoa com um texto pré definido, tem algum tutorial bom sobre isso ou podem me ajudar aqui mesmo? :slight_smile:

http://www.guj.com.br/articles/21

Então, cara não deu certo, ele da erro no Session, diz que não acha, mas eu importei o javax.mail, pq acontece isso?

O ideal é você postar o seu código completo, o erro e o stacktrace completo para que possamos analisar melhor.
Abraços.

SEVERE: Allocate exception for servlet com.br.umpulo.select
java.lang.ClassNotFoundException: javax.mail.Session
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
at org.apache.catalina.core.DefaultInstanceManager.populateAnnotationsCache(DefaultInstanceManager.java:276)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:125)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:857)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)

erro 500:
exception

javax.servlet.ServletException: Error instantiating servlet class com.br.umpulo.select
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:680)
root cause

java.lang.NoClassDefFoundError: Ljavax/mail/Session;
java.lang.Class.getDeclaredFields0(Native Method)
java.lang.Class.privateGetDeclaredFields(Class.java:2291)
java.lang.Class.getDeclaredFields(Class.java:1743)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:680)

codigo servlet:

public class select extends HttpServlet {
private static final long serialVersionUID = 1L;
private Session session;

		public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
			
			response.setContentType("text/html");
			PrintWriter out = response.getWriter();
				
			String email = request.getParameter("email");
			String senha = request.getParameter("senha");
			String login = request.getParameter("login");	
			 
			 if (login.equals("teste") && senha.equals("senha")) { 
				 out.println("Seleção<br>");
				 
		        } else { 
		        	out.println("tente outra vez<br>"); 
		        	
		        	Properties p = new Properties();  
		        	p.put("mail.host", "smtp2.locaweb.com.br"); 
		        	
		        	Session session = Session.getInstance(p, null);  
		        	MimeMessage msg = new MimeMessage(session);  
		        	
		        	try {
		        		msg.setFrom(new InternetAddress("teste@gmail.com")); 
		        		msg.setRecipient(Message.RecipientType.TO, new InternetAddress("teste@teste.com.br"));
		        		msg.setSentDate(new Date()); 
		        		msg.setSubject("assunto da mensagem");
		        		msg.setText("corpo da mensagem");
		        		Transport.send(msg); 
		        	}
		        		
		        	catch (AddressException e) {  
		        
		        	}
		        	
		        	catch (MessagingException e) {  
		        		
		        	}
		        }

}

Oi.

Use as tags code para edentar seu código colega.
Adicionou no lib do seu container web ou no web-inf do seu projeto as libs do Javamail ? :slight_smile:
Pois ele simplesmente não as encontra.

desculpe :oops:

Sim, eu adicionei em java build path, a lib mail.jar, quais os motivos dele não encontrar?

[quote=myroks]desculpe :oops:

Sim, eu adicionei em java build path, a lib mail.jar, quais os motivos dele não encontrar? [/quote]

Isso fará ele reconhecer a classe em tempo de compilação mas não em tempo de execução.
Adicione no lib do seu container web que ele vai encontrar sem problemas :slight_smile:

Abraços.

Como adicionar no container web? :? :oops:

Poderia dar uma pesquisa hein colega?
Qual container web tu usa?
Se for tomcat copia os jar´s lá para o: /WEB-INF/lib