Enviar email com javamail (primeiros passos) - Ajuda!

9 respostas
M

Pessoal, estou com uma grande dificuldade para configurar o javamail e testar uma aplicação.

Baixei os arquivos “javamail-1.4.2” e “jaf-1.0.2”, depois disso adicionei no CLASSPATH conforme segue:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\htmlconverter.jar;%JAVA_HOME%\jre\lib;%JAVA_HOME%\jre\lib\rt.jar;c:\Arquivos de programas\javamail-1.4.2\mail.jar;.C:\Arquivos de programas\jaf-1.0.2\activation.jar;.;%CLASSPATH%

e agora o que faço para fazer isso funcionar?

Alguém pode me dar algumas dicasde como configurar e testar o envio de email?

Desde já agradeço

Marcos

9 Respostas

finotti

marcos, esse tópico demonstra como utilizar a biblioteca commons-mail
http://www.guj.com.br/posts/list/106280.java
[]'s

M

Legal Finotti,

só que preciso antes saber como testar a instalação do javamail, se o que eu fiz está correto.

Tem alguma dica de como eu faço isso? Sou novato em jsp e preciso enviar emails nas minhas aplicações.

Marcos

finotti

sempre usei o commons mail e nunca estudei o javamail.
aqui no GUJ tem um tutorial, http://www.guj.com.br/article.show.logic?id=21
PS: tem muito artigo/tutorial interessante aqui no GUJ, vale a pena conferir
[]'s

M

Certo, e se eu quiser usar commons mail, você pode me ajudar a instalar e configurar?

finotti

é muito simples. basta fazer o download http://commons.apache.org/email/ , adicionar o arquivo commons-mailXX.jar ao classpath e utilizar aquele exemplo que te passei anteriormente.

M

Amigo, baixei o arquivo “commons-email-1.1” e coloquei a pasta neste end: c:\arquivos de programas\commons-email-1.1

Como devo setar no CLASSPATH? Meu CLASSPATH está assim:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\htmlconverter.jar;%JAVA_HOME%\jre\lib;%JAVA_HOME%\jre\lib\rt.jar

Na pasta tem esses 03 .jar

commons-email-1.1-sources.jar
commons-email-1.1.jar
commons-email-1.1-javadoc.jar

Finotti, desculpe a minha ignorância é que estou no início do aprendizado e preciso passo a passo mesmo.

Obrigado

Marcos

finotti

Marcos, sem problemas… a idéia do fórum é "compartilhar" conhecimento mesmo.
A idéia é indicar o caminho e não entregar a solução pronta, então, pra entender o que é classpath, leia esse tutorial aqui do guj. http://www.guj.com.br/article.show.logic?id=108

Desses 3 arquivos jar, você precisará apenas do ‘commons-email-1.1.jar’.
Se você estiver usando alguma IDE (Eclipse, NetBeans, etc), pode apontar pra essa biblioteca diretamente. No Eclipse, por exemplo, clique com o botão direito no projeto -> properties -> java build path -> libraries -> add jar.
Dessa forma, seu projeto consegue enxergar as classes que estão dentro do arquivo JAR.

[]'s

M

Finotti, usei seu exemplo de email simples para fazer um teste:

<%
import java.net.MalformedURLException;   
import java.net.URL;   
  
import org.apache.commons.mail.EmailAttachment;   
import org.apache.commons.mail.EmailException;   
import org.apache.commons.mail.HtmlEmail;   
import org.apache.commons.mail.MultiPartEmail;   
import org.apache.commons.mail.SimpleEmail;   
  
public class CommonsMail {   
       
    public CommonsMail() throws EmailException, MalformedURLException {   
        enviaEmailSimples();   
        enviaEmailComAnexo();   
        enviaEmailFormatoHtml();   
    }   
       
    /**  
     * envia email simples(somente texto)  
     * @throws EmailException  
     */   
    public void enviaEmailSimples() throws EmailException {   
           
        SimpleEmail email = new SimpleEmail();   
        email.setHostName("smtp.teste.com.br"); // o servidor SMTP para envio do e-mail   
        email.addTo("[email removido]", "Marcos"); //destinatário   
        email.setFrom("[email removido]", "Eu"); // remetente   
        email.setSubject("Teste -> Email simples"); // assunto do e-mail   
        email.setMsg("Teste de Email utilizando commons-email"); //conteudo do e-mail   
        email.setAuthentication("teste", "xxxxx");   
        email.setSmtpPort(465);   
        email.setSSL(true);   
        email.setTLS(true);   
        email.send();     
    } 
    /**  
     * @param args  
     * @throws EmailException  
     * @throws MalformedURLException  
     */   
    public static void main(String[] args) throws EmailException, MalformedURLException {   
        new CommonsMail();   
    }   
  
}

Olha só o erro que deu:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 2 in the jsp file: /enviaemail.jsp

Syntax error on token import, assert expected

1: <%

2: import java.net.MalformedURLException;

3: import java.net.URL;

4:

5: import org.apache.commons.mail.EmailAttachment;
An error occurred at line: 2 in the jsp file: /enviaemail.jsp

java.net.MalformedURLException cannot be resolved

1: <%

2: import java.net.MalformedURLException;

3: import java.net.URL;

4:

5: import org.apache.commons.mail.EmailAttachment;
An error occurred at line: 3 in the jsp file: /enviaemail.jsp

Syntax error on token import, assert expected

1: <%

2: import java.net.MalformedURLException;

3: import java.net.URL;

4:

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;
An error occurred at line: 3 in the jsp file: /enviaemail.jsp

java.net.URL cannot be resolved

1: <%

2: import java.net.MalformedURLException;

3: import java.net.URL;

4:

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;
An error occurred at line: 5 in the jsp file: /enviaemail.jsp

Syntax error on token import, assert expected

2: import java.net.MalformedURLException;

3: import java.net.URL;

4:

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;
An error occurred at line: 5 in the jsp file: /enviaemail.jsp

org.apache.commons.mail.EmailAttachment cannot be resolved to a type

2: import java.net.MalformedURLException;

3: import java.net.URL;

4:

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;
An error occurred at line: 6 in the jsp file: /enviaemail.jsp

Syntax error on token import, assert expected

3: import java.net.URL;

4:

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;
An error occurred at line: 6 in the jsp file: /enviaemail.jsp

org.apache.commons.mail.EmailException cannot be resolved to a type

3: import java.net.URL;

4:

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;
An error occurred at line: 7 in the jsp file: /enviaemail.jsp

Syntax error on token import, assert expected

4:

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;

10:
An error occurred at line: 7 in the jsp file: /enviaemail.jsp

org.apache.commons.mail.HtmlEmail cannot be resolved to a type

4:

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;

10:
An error occurred at line: 8 in the jsp file: /enviaemail.jsp

Syntax error on token import, assert expected

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;

10:

11: public class CommonsMail {
An error occurred at line: 8 in the jsp file: /enviaemail.jsp

org.apache.commons.mail.MultiPartEmail cannot be resolved to a type

5: import org.apache.commons.mail.EmailAttachment;

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;

10:

11: public class CommonsMail {
An error occurred at line: 9 in the jsp file: /enviaemail.jsp

Syntax error on token import, assert expected

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;

10:

11: public class CommonsMail {

12:
An error occurred at line: 9 in the jsp file: /enviaemail.jsp

org.apache.commons.mail.SimpleEmail cannot be resolved to a type

6: import org.apache.commons.mail.EmailException;

7: import org.apache.commons.mail.HtmlEmail;

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;

10:

11: public class CommonsMail {

12:
An error occurred at line: 11 in the jsp file: /enviaemail.jsp

Illegal modifier for the local class CommonsMail; only abstract or final is permitted

8: import org.apache.commons.mail.MultiPartEmail;

9: import org.apache.commons.mail.SimpleEmail;

10:

11: public class CommonsMail {

12:

13:     public CommonsMail() throws EmailException, MalformedURLException {

14:         enviaEmailSimples();
An error occurred at line: 13 in the jsp file: /enviaemail.jsp

EmailException cannot be resolved to a type

10:

11: public class CommonsMail {

12:

13:     public CommonsMail() throws EmailException, MalformedURLException {

14:         enviaEmailSimples();

15:         enviaEmailComAnexo();

16:         enviaEmailFormatoHtml();
An error occurred at line: 13 in the jsp file: /enviaemail.jsp

MalformedURLException cannot be resolved to a type

10:

11: public class CommonsMail {

12:

13:     public CommonsMail() throws EmailException, MalformedURLException {

14:         enviaEmailSimples();

15:         enviaEmailComAnexo();

16:         enviaEmailFormatoHtml();
An error occurred at line: 15 in the jsp file: /enviaemail.jsp

The method enviaEmailComAnexo() is undefined for the type CommonsMail

12:

13:     public CommonsMail() throws EmailException, MalformedURLException {

14:         enviaEmailSimples();

15:         enviaEmailComAnexo();

16:         enviaEmailFormatoHtml();

17:     }

18:
An error occurred at line: 16 in the jsp file: /enviaemail.jsp

The method enviaEmailFormatoHtml() is undefined for the type CommonsMail

13:     public CommonsMail() throws EmailException, MalformedURLException {

14:         enviaEmailSimples();

15:         enviaEmailComAnexo();

16:         enviaEmailFormatoHtml();

17:     }

18:

19:     /**
An error occurred at line: 23 in the jsp file: /enviaemail.jsp

EmailException cannot be resolved to a type

20:      * envia email simples(somente texto)

21:      * @throws EmailException

22:      */

23:     public void enviaEmailSimples() throws EmailException {

24:

25:         SimpleEmail email = new SimpleEmail();

26:         email.setHostName(smtp.multibras.com.br); // o servidor SMTP para envio do e-mail
An error occurred at line: 25 in the jsp file: /enviaemail.jsp

SimpleEmail cannot be resolved to a type

22:      */

23:     public void enviaEmailSimples() throws EmailException {

24:

25:         SimpleEmail email = new SimpleEmail();

26:         email.setHostName(smtp.multibras.com.br); // o servidor SMTP para envio do e-mail

27:         email.addTo(<a>"[email removido]</a>", Marcos); //destinatário

28:         email.setFrom(<a>"[email removido]</a>", Eu); // remetente
An error occurred at line: 25 in the jsp file: /enviaemail.jsp

SimpleEmail cannot be resolved to a type

22:      */

23:     public void enviaEmailSimples() throws EmailException {

24:

25:         SimpleEmail email = new SimpleEmail();

26:         email.setHostName(smtp.multibras.com.br); // o servidor SMTP para envio do e-mail

27:         email.addTo(<a>"[email removido]</a>", Marcos); //destinatário

28:         email.setFrom(<a>"[email removido]</a>", Eu); // remetente
An error occurred at line: 42 in the jsp file: /enviaemail.jsp

The method main cannot be declared static; static methods can only be declared in a static or top level type

39:      * @throws EmailException

40:      * @throws MalformedURLException

41:      */

42:     public static void main(String[] args) throws EmailException, MalformedURLException {

43:         new CommonsMail();

44:     }

45:
An error occurred at line: 42 in the jsp file: /enviaemail.jsp

EmailException cannot be resolved to a type

39:      * @throws EmailException

40:      * @throws MalformedURLException

41:      */

42:     public static void main(String[] args) throws EmailException, MalformedURLException {

43:         new CommonsMail();

44:     }

45:
An error occurred at line: 42 in the jsp file: /enviaemail.jsp

MalformedURLException cannot be resolved to a type

39:      * @throws EmailException

40:      * @throws MalformedURLException

41:      */

42:     public static void main(String[] args) throws EmailException, MalformedURLException {

43:         new CommonsMail();

44:     }

45:
Stacktrace:

org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)

org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)

org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)

org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.

G

tambem estou (tentando) usar, mas, com tudo certinho, dah a seguinte mensagem na execucao da linha

SimpleEmail email = new SimpleEmail()

mensagem do erro:
java.lang.NoClassDefFoundError : javax/mail/Message

detalhe: no fonte nao dae erro nenhum, e a commons-email-1.2.jar foi add no classpath certinho tambem…

o q fazer pra resolver isso ??

dede ja agredeco a ajuda: MUITO OBRIGADO…

Gilberto

Criado 18 de junho de 2009
Ultima resposta 11 de nov. de 2010
Respostas 9
Participantes 3