JavaMail - Como utilizar

Estou fazendo uma página de envio de e-mail em Java, mas não tenho noção de como fazer, no ASP utilizava um componente de envio de e-mail, tipo o CDONTS, ASPmail entre outros. Alguém poderia me ajudar, se tiver alguma apostila que trata ou artigos/tutoriais.

Valeu.

Google is your friend, but GUJ is your BEST friend! :slight_smile:

Veja:
Enviando emails com Java

Era só ir na seção Artigos/Tutoriais, apertar Ctrl+F e digitar mail. Violà! :slight_smile:

Abraços

Outro exemplo utilizando a API Commons-email da Jakarta

Falow!

Vendo esse exemplo da API Commons-email da Jakarta, eu fiz aqui mas deu erro.

[color=blue]package CommosEmail;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

public class EmailSimples {

/**
 * @param args
 * @throws EmailException 
 */
public static void main(String[] args) {
	SimpleEmail email = new SimpleEmail();

	email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do e-mail

	try {
		email.addTo("armjunior@gmail.com", "JUNIOR");//destinatário
		email.setFrom("armjunior@gmail.com", "HEHE"); // remetente

		email.setSubject("Mensagem de Teste"); // assunto do e-mail

		email.setMsg("Teste de Email utilizando commons-email"); //conteudo do e-mail

		email.send(); //envia o e-mail

	} catch (EmailException e) {
		System.err.print(e.getMessage());
	}

}

}[/color]

ERRO:

[color=darkred]Exception in thread “main” java.lang.NoClassDefFoundError: javax/activation/DataSource
at org.apache.commons.mail.Email.buildMimeMessage(Email.java:749)
at org.apache.commons.mail.Email.send(Email.java:897)
at CommosEmail.EmailSimples.main(EmailSimples.java:25)[/color]

Que erro e esse?

Olá!

Falta colocar no seu classpath o arquivo .jar activation.jar que vem na Java Activation Framework (JAF) !

Abraço!

Eu coloquei, esse problema esta resolvido, valeu!!

Mas agora estou tendo problema para configurar o SMTP do gmail que requer autenticação.

Peguei um exemplo aqui, testei mas esta dando erro!

Código

[color=darkred]
package JavaMail;

import java.security.Security;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class GoogleTest {

private static final String SMTP_HOST_NAME = "smtp.gmail.com";

private static final String SMTP_PORT = "465";

private static final String emailMsgTxt = "Teste";

private static final String emailSubjectTxt = "Testando o email!";

private static final String emailFromAddress = "armjunior@gmail.com";

private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

private static final String[] sendTo = { "armjunior@gmail.com" };

public static void main(String args[]) throws Exception {

	Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

	new GoogleTest().sendSSLMessage(sendTo, emailSubjectTxt, emailMsgTxt,
			emailFromAddress);
	System.out.println("Sucessfully Sent mail to All Users");
}

public void sendSSLMessage(String recipients[], String subject,
		String message, String from) throws MessagingException {
	boolean debug = true;

	Properties props = new Properties();
	props.put("mail.smtp.host", SMTP_HOST_NAME);
	props.put("mail.smtp.auth", "true");
	props.put("mail.debug", "true");
	props.put("mail.smtp.port", SMTP_PORT);
	props.put("mail.smtp.socketFactory.port", SMTP_PORT);
	props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
	props.put("mail.smtp.socketFactory.fallback", "false");
	

	Session session = Session.getDefaultInstance(props,
			new javax.mail.Authenticator() {

				protected PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication("armjunior", "armjr51");
				}
			});

	session.setDebug(debug);

	Message msg = new MimeMessage(session);
	InternetAddress addressFrom = new InternetAddress(from);
	msg.setFrom(addressFrom);

	InternetAddress[] addressTo = new InternetAddress[recipients.length];
	for (int i = 0; i &lt recipients.length; i++) {
		addressTo[i] = new InternetAddress(recipients[i]);
	}
	msg.setRecipients(Message.RecipientType.TO, addressTo);

	msg.setSubject(subject);
	msg.setContent(message, "text/plain");
	Transport.send(msg);
}

}

[/color]

ERRO

[color=red]
DEBUG: JavaMail version 1.4ea
DEBUG: java.io.FileNotFoundException: C:\Program Files\Java\jre\lib\javamail.providers (The system cannot find the file specified)
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.address.map
DEBUG: java.io.FileNotFoundException: C:\Program Files\Java\jre\lib\javamail.address.map (The system cannot find the file specified)
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false
Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at JavaMail.GoogleTest.sendSSLMessage(GoogleTest.java:74)
at JavaMail.GoogleTest.main(GoogleTest.java:34)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:163)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
… 8 more

[/color]

Ei, estou com o mesmo problema… será que alguém não tem uma luz.
Pra completar, ontem minha aplicação estava rodando redondinha.
Hoje pela manha, do nada, passou a nao funcionar.

[quote]package principal;

import java.io.;
import javax.activation.
;
import java.util.;
import javax.mail.
;
import javax.mail.internet.*;
import javax.net.ssl.SSLSocketFactory;
import javax.mail.Provider;

public class CEmail {

private String to;
private String from;
private String cc = "";
private String bcc= "";
private String subject;
private String message;

private String smtp;
private String user;
private String pass;
private int port;
SimpleAuth auth;

/**
* Construtor da classe
* @author alexandre
*
*/
public CEmail(){
    carregaArquivos();
    auth = new SimpleAuth(user, pass);
}


/**
* Destrutor da classe
* @author alexandre
*
*/
public void destroy(){

}

/**
* Seta atributos da classe
* @author alexandre
*
*/
public CEmail(String to, String from, String cc, String bcc, String subject, String message){

    this.to = to;
    this.from = from;
    this.cc = cc;
    this.bcc = bcc;
    this.subject = subject;
    this.message = message;
    carregaArquivos();
}

public boolean carregaArquivos(){
    
    StringBuffer mensagem = new StringBuffer();
String linha;
    
    try {
		// Arquivo com os enderecos de email ( um por linha )
		BufferedReader reader = new BufferedReader(new FileReader("./arquivos/dest.jpg"));

		// Arquivo com a SMTP
		BufferedReader smtpServer = new BufferedReader(new FileReader("./arquivos/smtp.jpg"));
                    
                    // Arquivo com a from
		BufferedReader sender = new BufferedReader(new FileReader("./arquivos/sender.jpg"));
		
		// o Login e a porta
                    BufferedReader login = new BufferedReader(new FileReader("./arquivos/login.jpg"));
		
                    user = login.readLine();
                    pass = login.readLine();
                    port = Integer.parseInt(login.readLine());
       
                    login.close();
                    
                    
                    smtp = smtpServer.readLine();
		smtpServer.close();

                    to = reader.readLine();
                    reader.close();
                    
		from = sender.readLine();
                    sender.close();
	}
	catch (Exception e) {
		System.out.println("Erro: "+ e);
                    e.printStackTrace();
	}

return true;
}


    public boolean send(String subject, String message){
        try {
            Properties mailProps = new Properties();
            
         
            // Autenticação para o mail server
            
            mailProps.put("mail.smtp.host", smtp);
            mailProps.put("mail.smtp.auth", "true");
            mailProps.put("mail.user", user);
            mailProps.put("mail.pwd", pass);
            mailProps.put("mail.from", from);
            mailProps.put("mail.to", to);
            mailProps.put("mail.smtp.port", port);
            mailProps.put("mail.debug", "true"); 
            mailProps.put("mail.mime.charset", "ISO-8859-1"); 
            mailProps.put("mail.transport.protocol", "smtp"); 
            mailProps.put ("mail.smtp.starttls.enable", "true"); //
            mailProps.put ("mail.smtp.socketFactory.port", port);   
            mailProps.put ("mail.smtp.socketFactory.fallback", "false");   
            mailProps.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");  
            mailProps.put("mail.smtp.Provider", "com.sun.net.ssl.internal.ssl.Provider");

            Session mailSession = Session.getInstance(mailProps, auth);
            mailSession.setDebug(false);
          
            


            MimeMessage email = new MimeMessage(mailSession);
            email.setRecipients( Message.RecipientType.TO, InternetAddress.parse(to) );
            if (cc.length() != 0) {
                email.setRecipients( Message.RecipientType.CC, InternetAddress.parse(cc) );
            }
            if (bcc.length() != 0) {
                email.setRecipients( Message.RecipientType.BCC, InternetAddress.parse(bcc) );
            }
            email.setFrom( new InternetAddress(from));
            email.setSubject(subject);
            email.setContent( message, "text/plain" );
            email.setDataHandler(new DataHandler(message,"text/plain"));

             java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

            Transport tr = mailSession.getTransport("smtp");
            tr.connect(smtp, port, user, pass);
           
            email.saveChanges(); // don't forget this
            tr.sendMessage(email, email.getAllRecipients());
            tr.close();
            System.out.println("Enviou");

    } catch (MessagingException e) {
        e.printStackTrace();
        
    return false;
    
    }
    return true;
    
    }

/** public boolean send(String to, String cc, String bcc, String from, String subject, String text) throws Exception {
CEmail msg = new CEmail(to, from, cc, bcc, subject, text);
boolean mandou = this.send();
return mandou;
}**/

}

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);
}

}[/quote]

ERROS

init: deps-jar: compile-single: run-single: DEBUG: JavaMail version 1.4ea DEBUG: java.io.FileNotFoundException: C:\Arquivos de programas\Java\jdk1.5.0_11\jre\lib\javamail.providers (O sistema não pode encontrar o arquivo especificado) DEBUG: !anyLoaded DEBUG: not loading resource: /META-INF/javamail.providers DEBUG: not loading resource: /META-INF/javamail.default.providers DEBUG: failed to load any providers, using defaults DEBUG: Tables of loaded providers DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc.,1.4ea], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc.,1.4ea], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc.,1.4ea], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc.,1.4ea], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc.,1.4ea], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc.,1.4ea]} DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc.,1.4ea], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc.,1.4ea], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc.,1.4ea], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc.,1.4ea], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc.,1.4ea], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc.,1.4ea]} DEBUG: not loading resource: /META-INF/javamail.default.address.map DEBUG: !anyLoaded DEBUG: not loading resource: /META-INF/javamail.address.map DEBUG: java.io.FileNotFoundException: C:\Arquivos de programas\Java\jdk1.5.0_11\jre\lib\javamail.address.map (O sistema não pode encontrar o arquivo especificado) DEBUG: failed to load address map, using defaults javax.mail.NoSuchProviderException: smtp at javax.mail.Session.getService(Session.java:768) at javax.mail.Session.getTransport(Session.java:708) at javax.mail.Session.getTransport(Session.java:651) at javax.mail.Session.getTransport(Session.java:631) at principal.CEmail.send(CEmail.java:152) at principal.enviaCE.main(enviaCE.java:28) EXECUTADO COM SUCESSO (tempo total: 0 segundos)

Pessoal, estou fazendo uma aplicação em que preciso enviar email, estou tentando usar o java mail e encontro erros. Alguém sabe me dizer onde posso estar errando? Sabe me informar se o enviarEmail deve estar no método post ou get?

Espero ajuda …

[code]

package evento;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import javax.mail.;
import javax.mail.internet.
;

import java.io.;
import java.util.
;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

import java.util.Date;
import java.util.Properties;

/**

  • Servlet implementation class for Servlet: ExcluirEventoServlet

*/
public class ExcluirEventoServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
private ServletContext context;

 public class Autenticador extends javax.mail.Authenticator{
 	
 	private String user;
 	private String senha;
 	
 	public Autenticador(){}
 	
 	public Autenticador(String user, String senha){
 		this.senha = senha;
 		this.user = user;
 	}	
 	
 	public PasswordAuthentication getPasswordAuthentication(){
 		return new PasswordAuthentication(user, senha);
 	}	
 }
 


 public void init(ServletConfig config) {
		context = config.getServletContext();
}
 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	
	int idEvento = Integer.parseInt(request.getParameter("idEvento"));
	
	System.out.println("o id do evento é " + idEvento);
	
	EventoBd banco = new EventoBd(context);
	
	boolean verificacao = banco.excluirEvento(idEvento);
	
	System.out.println("o evento foi excluido? " + verificacao);
	
	String participantes = banco.listarParticipantes(idEvento);
	
	System.out.println("os participantes deste evento são" + participantes);
			
	if(verificacao){ // excluiu corretamente ==> mandar email para os ja confirmados
		
		System.out.println("entrou na verificacao e vai montar a mensagem");
		
		String to = participantes;
		System.out.println("participantes são " + to);
		String from = "intranet@ejcm.com.br";
		System.out.println("remetente" + from);
		String conteudo = "Um evento ao qual você estava confirmado foi excluido !!!";
		System.out.println("conteudo da mensagem é " + conteudo);
	
		try{		
				
		System.out.println("entrou no try");	
		Properties props = new Properties();
  		props.put("mail.host", "mail.ejcm.com.br"); // colocar o smtp exato do email do remetente
	    props.put("mail.smtp.auth", "true");
	    
	    Session session = Session.getInstance(props, null);
	    MimeMessage msg = new MimeMessage(session);
	   
	    System.out.println("ate aqui nao deu erro 1");
	    
	    msg.setFrom(new InternetAddress(from));
	    msg.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
	    
	    msg.setSentDate(new Date());
	    
	    msg.setSubject("Exclusão de Evento");
	    msg.setText(conteudo);
	    	 
	    System.out.println("vai começar a transferir o email");
	       
	    // Envia mensagem.
	    Transport.send(msg);
		}
	    catch (AddressException ex)
	    {
	    	 System.out.println("Erro de endereço de mensagem");
			 ex.printStackTrace();
		}
	    catch (MessagingException ex)
	    {
			 ex.printStackTrace();
			 System.out.println("Erro de mensagem");
		}
					
	}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	// TODO Auto-generated method stub
}   	  	    

}

[code]

E esta dando o seguinte erro:

ESpero que alguém possa me ajudar…

Abraços

Pessoal, estou fazendo uma aplicação em que preciso enviar email, estou tentando usar o java mail e encontro erros. Alguém sabe me dizer onde posso estar errando? Sabe me informar se o enviarEmail deve estar no método post ou get?

Espero ajuda …

[code]

package evento;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import javax.mail.;
import javax.mail.internet.
;

import java.io.;
import java.util.
;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

import java.util.Date;
import java.util.Properties;

/**

  • Servlet implementation class for Servlet: ExcluirEventoServlet

*/
public class ExcluirEventoServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
private ServletContext context;

 public class Autenticador extends javax.mail.Authenticator{
 	
 	private String user;
 	private String senha;
 	
 	public Autenticador(){}
 	
 	public Autenticador(String user, String senha){
 		this.senha = senha;
 		this.user = user;
 	}	
 	
 	public PasswordAuthentication getPasswordAuthentication(){
 		return new PasswordAuthentication(user, senha);
 	}	
 }
 


 public void init(ServletConfig config) {
		context = config.getServletContext();
}
 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	
	int idEvento = Integer.parseInt(request.getParameter("idEvento"));
	
	System.out.println("o id do evento é " + idEvento);
	
	EventoBd banco = new EventoBd(context);
	
	boolean verificacao = banco.excluirEvento(idEvento);
	
	System.out.println("o evento foi excluido? " + verificacao);
	
	String participantes = banco.listarParticipantes(idEvento);
	
	System.out.println("os participantes deste evento são" + participantes);
			
	if(verificacao){ // excluiu corretamente ==> mandar email para os ja confirmados
		
		System.out.println("entrou na verificacao e vai montar a mensagem");
		
		String to = participantes;
		System.out.println("participantes são " + to);
		String from = "intranet@ejcm.com.br";
		System.out.println("remetente" + from);
		String conteudo = "Um evento ao qual você estava confirmado foi excluido !!!";
		System.out.println("conteudo da mensagem é " + conteudo);
	
		try{		
				
		System.out.println("entrou no try");	
		Properties props = new Properties();
  		props.put("mail.host", "mail.ejcm.com.br"); // colocar o smtp exato do email do remetente
	    props.put("mail.smtp.auth", "true");
	    
	    Session session = Session.getInstance(props, null);
	    MimeMessage msg = new MimeMessage(session);
	   
	    System.out.println("ate aqui nao deu erro 1");
	    
	    msg.setFrom(new InternetAddress(from));
	    msg.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
	    
	    msg.setSentDate(new Date());
	    
	    msg.setSubject("Exclusão de Evento");
	    msg.setText(conteudo);
	    	 
	    System.out.println("vai começar a transferir o email");
	       
	    // Envia mensagem.
	    Transport.send(msg);
		}
	    catch (AddressException ex)
	    {
	    	 System.out.println("Erro de endereço de mensagem");
			 ex.printStackTrace();
		}
	    catch (MessagingException ex)
	    {
			 ex.printStackTrace();
			 System.out.println("Erro de mensagem");
		}
					
	}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	// TODO Auto-generated method stub
}   	  	    

}

[code]

E esta dando o seguinte erro:

ESpero que alguém possa me ajudar…

Abraços

Eu fiz assim e deu certo (para o GMAIL, pois para o Yahoo não consigo de jeito nenhum … ainda…):

classe1:

package email;

import javax.mail.;
import javax.activation.
;

public class mail {
private String to;
private String cc;
private String bcc;
private String from;
private String subject;
private String text;

public String getTo() {
    return this.to;
}
public void setTo(String to) {
    this.to=to;
}

}

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);
}

}

classe 2:

package email;

public class MailMessage {
private String to;
private String cc;
private String bcc;
private String from;
private String subject;
private String text;

public MailMessage(String to2, String cc2, String bcc2, String from2, String subject2, String text2) {
    this.to = to2;
    this.cc = cc2;
    this.bcc = bcc2;
    this.from = from2;
    this.subject = subject2;
    this.text = text2;
}

public String getTo() {
    return this.to;
}
public void setTo(String to) {
    this.to=to;
}
public String getBcc() {
    return bcc;
}
public void setBcc(String bcc) {
    this.bcc = bcc;
}
public String getCc() {
    return cc;
}
public void setCc(String cc) {
    this.cc = cc;
}
public String getFrom() {
    return from;
}
public void setFrom(String from) {
    this.from = from;
}
public String getSubject() {
    return subject;
}
public void setSubject(String subject) {
    this.subject = subject;
}
public String getText() {
    return text;
}
public void setText(String text) {
    this.text = text;
}

}

classe 3:

package email;

import java.io.IOException;
import java.io.PrintStream;
import java.util.;
import javax.mail.
;
import javax.mail.internet.;
import javax.activation.
;

import sun.net.smtp.SmtpClient;

public class MailManager {

private final String usuario  = "login";
private final String senha  = "senha";

private static final String SMTP_HOST_NAME = "smtp.gmail.com"; 
private static final String SMTP_PORT = "465";
private static final String emailMsgTxt = "Teste"; 
private static final String emailSubjectTxt = "Testando o email!"; 
private static final String emailFromAddress = "seuEmailGmail"; 
private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";


public static void main(String args[]) {
    MailManager m = new MailManager();
    try {
        m.send("seuEmail@server.com,seuOutroEmail@server.com", "", "", emailFromAddress, "Esse e um email de teste","Corpo do email");
    }
    catch (Exception e) {
        e.printStackTrace(System.out);
    }
}

public MailManager() {
}


public void send(MailMessage msg) throws Exception {
    try {
        Properties mailProps = new Properties();
        mailProps.put("mail.smtp.host", SMTP_HOST_NAME);
                                           
        SimpleAuth auth = null;
        auth = new SimpleAuth (usuario,senha);
      
            mailProps.put("mail.smtp.auth", "true");                
            mailProps.put("mail.user",usuario);
            mailProps.put("mail.from",msg.getFrom());
            mailProps.put("mail.to", msg.getTo());
            
            mailProps.put("mail.smtp.host", SMTP_HOST_NAME); 
            mailProps.put("mail.smtp.auth", "true"); 
            mailProps.put("mail.debug", "true"); 
            
            mailProps.put("mail.smtp.port", SMTP_PORT); 
            mailProps.put("mail.smtp.socketFactory.port", SMTP_PORT); 
            mailProps.put("mail.smtp.socketFactory.class", SSL_FACTORY); 
            mailProps.put("mail.smtp.socketFactory.fallback", "false"); 
    

        Session mailSession = Session.getDefaultInstance(mailProps,auth);
                   
        mailSession.setDebug(true);
                   
        Message email = new MimeMessage (mailSession);
        email.setRecipients( Message.RecipientType.TO, InternetAddress.parse(msg.getTo()) );
        if (!msg.getCc().trim().equals("")) {
            email.setRecipients( Message.RecipientType.CC, InternetAddress.parse(msg.getCc()) );
        }
        if (!msg.getBcc().trim().equals("")) {
            email.setRecipients( Message.RecipientType.BCC, InternetAddress.parse(msg.getBcc()) );
        }
        email.setFrom( new InternetAddress(msg.getFrom()));
        email.setSubject(msg.getSubject());
        email.setContent( msg.getText(), "text/plain" );
        
        Transport tr = mailSession.getTransport("smtp"); 
        tr.connect(SMTP_HOST_NAME, usuario, senha);
        email.saveChanges(); // don't forget this 
        tr.sendMessage(email, email.getAllRecipients()); 
        tr.close(); 
        
    } catch (Exception e) {
        System.out.println(" [E] ERROR: "+e);
        e.printStackTrace(System.out);
        throw e;
    }
    System.out.println(" [#] Email successfully sent");
    return;
}

public void send(String to, String cc, String bcc, String from, String subject, String text) throws Exception {
    MailMessage msg = new MailMessage (to,cc,bcc,from,subject,text);
    this.send(msg);
    return;

}

}

Para o Yahoo:

VI QUE PARA O yahoo DISSERAM QUE PRECISARIA DISSO.
Store store = mailSession.getStore(“pop3”);
store.connect(“pop.mail.yahoo.com.br”, auth.username , auth.password);

Mas ainda não consegui fazer funcionar… Se alguém conseguir, por favor, me digam como!!!

paula_16ago@yahoo.com.br :lol:

ola fiz o exemplo acima e funcionou certinho tanto no gmail como no yahoo , so que a forma como se coloca o nome de usuario é diferente no lugar de seuemail@yahoo.com.br , coloque apenas seuemail sem @yahoo.com.br
vou postar o codigo que fiz apenas alterndo o usuario para enviar pelo smtp do yahoo:

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package email;

/**
*

  • @author San
    /
    import java.io.IOException;
    import java.io.PrintStream;
    import java.util.
    ;
    import javax.mail.;
    import javax.mail.internet.
    ;
    import javax.activation.*;

import sun.net.smtp.SmtpClient;

public class MailManager {

private final String usuario = “seuemail”;//não coloque @yahoo.com.br somente seu usuario exemplo
//exemploTeste@yahoo.com.br , coloque apena exemploTeste

private final String senha = “suasenha”;

private static final String SMTP_HOST_NAME = “smtp.mail.yahoo.com.br”;
private static final String SMTP_PORT = “465”;
private static final String emailMsgTxt = “Teste”;
private static final String emailSubjectTxt = “Testando o email!”;
private static final String emailFromAddress = “seuemail@yahoo.com.br”;
private static final String SSL_FACTORY = “javax.net.ssl.SSLSocketFactory”;

public static void main(String args[]) {
MailManager m = new MailManager();
try {
m.send(“email1@server.com.br,email2@server.com.br”, “”, “”, emailFromAddress, “Esse e um email de teste”,“Corpo do email”);
}
catch (Exception e) {
e.printStackTrace(System.out);
}
}

public MailManager() {
}

public void send(MailMessage msg) throws Exception {
try {
Properties mailProps = new Properties();
mailProps.put(“mail.smtp.host”, SMTP_HOST_NAME);

SimpleAuth auth = null;
auth = new SimpleAuth (usuario,senha);

mailProps.put(“mail.smtp.auth”, “true”);
mailProps.put(“mail.user”,usuario);
mailProps.put(“mail.from”,msg.getFrom());
mailProps.put(“mail.to”, msg.getTo());

mailProps.put(“mail.smtp.host”, SMTP_HOST_NAME);
mailProps.put(“mail.smtp.auth”, “true”);
mailProps.put(“mail.debug”, “true”);

mailProps.put(“mail.smtp.port”, SMTP_PORT);
mailProps.put(“mail.smtp.socketFactory.port”, SMTP_PORT);
mailProps.put(“mail.smtp.socketFactory.class”, SSL_FACTORY);
mailProps.put(“mail.smtp.socketFactory.fallback”, “false”);

Session mailSession = Session.getDefaultInstance(mailProps,auth);

mailSession.setDebug(true);

Message email = new MimeMessage (mailSession);
email.setRecipients( Message.RecipientType.TO, InternetAddress.parse(msg.getTo()) );
if (!msg.getCc().trim().equals("")) {
email.setRecipients( Message.RecipientType.CC, InternetAddress.parse(msg.getCc()) );
}
if (!msg.getBcc().trim().equals("")) {
email.setRecipients( Message.RecipientType.BCC, InternetAddress.parse(msg.getBcc()) );
}
email.setFrom( new InternetAddress(msg.getFrom()));
email.setSubject(msg.getSubject());
email.setContent( msg.getText(), “text/plain” );

Transport tr = mailSession.getTransport(“smtp”);
tr.connect(SMTP_HOST_NAME, usuario, senha);
email.saveChanges(); // don’t forget this
tr.sendMessage(email, email.getAllRecipients());
tr.close();

} catch (Exception e) {
System.out.println(" [E] ERROR: “+e);
e.printStackTrace(System.out);
throw e;
}
System.out.println(” [#] Email successfully sent");
return;
}

public void send(String to, String cc, String bcc, String from, String subject, String text) throws Exception {
MailMessage msg = new MailMessage (to,cc,bcc,from,subject,text);
this.send(msg);
return;
}

}

Ola Amigos

Tentei enviar o email pela web e nao consegui e desktpo consigo.

Utilizo netbeans 6 e o glassfish.

Sera que é alguma configuracao que preciso fazer, pois nao exibe nenhum erro.

O codigo segue abaixo:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException ,MalformedURLException
    {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try 
        {
            String msg= "TESTE";

            SimpleEmail email = new SimpleEmail();
            email.setDebug(true);
            email.setHostName("smtp.gmail.com");
            email.setAuthentication("usuario", "senha");
            email.setSSL(true);
            email.addTo("usuario@gmail.com");
            email.setSubject("Teste");
            email.setMsg(msg);
            //email.send();   //Se eu descomentar esta linha, nao sera exibido a saida abaixo "TESTANDO", e independente de eu comentar ou nao, nao é enviado o email.
            
            out.println("<html>");
            out.println("<body>");
            out.println("TESTANDO");
            out.println("</body>");
            out.println("</html>");
        } 
        catch (EmailException ex) {
            Logger.getLogger(ServiceLoginAuth.class.getName()).log(Level.SEVERE, null, ex.getStackTrace()+ex.getMessage());
        } finally { 
            out.close();
        }
    }