Email

12 respostas
M

bom dia pessoal…mesmo com as dicas e com o tutorial…eu nao consigo fazer uma pagina em jsp que envia email…
bom eu acho que o problema esta no arquivo mail.jar…a minha pagina nao esta encontrando o arquivo…eu coloquei o arquivo na pasta jre/lib…é a pasta certa???
na pagina jsp eu coloco import=“javax.mail.*”, mas eu acho que nao esta encontrando…assim quando eu dou new na Session e no MimeMessage…ele da erro…
bom ele ta dando o seguinte erro…

A Servlet Exception Has Occurred
org.apache.jasper.compiler.CompileException: /Mail.jsp(3,0) Page directive: can’t have multiple occurrences of language

agradeço a ajuda…
Mauricio

12 Respostas

Rafael_Steil

Coloca no diretorio WEB-INF/lib da tua aplicacao.

Rafael

M

coloquei e continua dando o mesmo erro…

Mauricio

Daniel_Quirino_Olive

Coloca o cabeçalho da sua página Mail.jsp aqui para darmos uma olhadinha.

M

esta assim:

<%@ page language=java import=javax.mail.*%>

<%

java.util.Properties p = new java.util.Properties();

p.put(smtp, host);

Session session = Session.getInstance(p, null);

MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress([email removido]));

msg.setRecipient(Message.RecipientType.TO, new InternetAddress([email removido]));

msg.setSentDate(new Date());

msg.setSubject(assunto da mensagem);

msg.setText(corpo da mensagem);

Transport.send(msg);

%>

ai ele da os seguintes erros:

A Servlet Exception Has Occurred
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occured between lines: 4 and 16 in the jsp file: /Mail.jsp

Generated servlet error:
C:Arquivos de programasApache Tomcat 4.0worklocalhostUploadMail$jsp.java:66: Variable ‘session’ is already defined in this method.
Session session = Session.getInstance(p, null);
^

An error occured between lines: 4 and 16 in the jsp file: /Mail.jsp

Generated servlet error:
C:Arquivos de programasApache Tomcat 4.0worklocalhostUploadMail$jsp.java:67: Class org.apache.jsp.MimeMessage not found.
MimeMessage msg = new MimeMessage(session);
^

An error occured between lines: 4 and 16 in the jsp file: /Mail.jsp

Generated servlet error:
C:Arquivos de programasApache Tomcat 4.0worklocalhostUploadMail$jsp.java:67: Class org.apache.jsp.MimeMessage not found.
MimeMessage msg = new MimeMessage(session);
^
3 errors

valeu pela ajuda…
Mauricio

leonardom

Importe tambem o pacote:

import javax.mail.internet.*;

Porque a classe MimeMessage está neste pacote.

Vc tbem está definindo o objeto session novamente. Lembre-se que este objeto é implicito, isto é, já está definido.

Daniel_Quirino_Olive
Tente isso:
&lt;%@ page import=&quot;javax.mail.*, javax.mail.internet.*&quot;%&gt;
&lt;%
java.util.Properties p = new java.util.Properties&#40;&#41;;
p.put&#40;&quot;smtp&quot;, &quot;host&quot;&#41;;
javax.mail.Session mailSession = javax.mail.Session.getInstance&#40;p, null&#41;;
MimeMessage msg = new MimeMessage&#40;mailSession&#41;;

msg.setFrom&#40;new InternetAddress&#40;&quot;[email removido]&quot;&#41;&#41;;
msg.setRecipient&#40;Message.RecipientType.TO, new InternetAddress&#40;&quot;[email removido]&quot;&#41;&#41;;
msg.setSentDate&#40;new Date&#40;&#41;&#41;;
msg.setSubject&#40;&quot;assunto da mensagem&quot;&#41;;
msg.setText&#40;&quot;corpo da mensagem&quot;&#41;;
Transport.send&#40;msg&#41;;
%&gt;

Agora, sobre os erros:
:arrow: o primeiro erro ocorre porque a variável com identificador "session" já está definida. "session" é uma variável implícita que representa uma instância de um javax.servlet.http.HttpSession.
:arrow: o segundo e o terceiro erros se devem ao fato de você não ter importado o pacote "javax.mail.internet".
Acho que é só.

M

valeu pessoal…vcs me ajudaram muito…

agora to com esse erro:

A Servlet Exception Has Occurred

Exception Report:

javax.servlet.ServletException: Sending failed;

nested exception is:

class javax.mail.SendFailedException: Invalid Addresses;

nested exception is:

class javax.mail.SendFailedException: 550 5.7.1 Unable to relay for [email removido]

o que pode ser???
ah e mais uma duvida…

p.put(“smtp”, “host”);

no p.put…o primeiro parametro é o endereço do smtp e o segundo é o ip do servidor de internet???

valeu…
Mauricio

leonardom

Acho que seria:

public static final String IP_SERVIDOR = "192.168.0.1";

mailProps.put&#40;"mail.smtp.host", IP_SERVIDOR&#41;;
M

entao os dados que estou colocando no p.put(“smtp”, “host”) estao certos…será que nao esta faltando nenhum outro arquivo alem do mail.jar e activation.jar???

Mauricio

Daniel_Quirino_Olive

A conta “[email removido]” é válida?

M

sim…na verdade no meu programa eu coloco outro email…mas o email é valido…
eu acho que esta faltando a autentificação…
como faço pra usar o javax.mail.Authenticator???

Mauricio

carioca

Cara em Java isso resolve, mas em JSP deve ser outra coisa.

private static class SMTPAuthenticator extends javax.mail.Authenticator&#123;
	   	public PasswordAuthentication getPasswordAuthentication&#40;&#41;&#123;
    		
        	String username = "name";
        	String password = "senha";
        	return new PasswordAuthentication&#40;username, password&#41;;
    	&#125;
	&#125;

Comigo dava tbem os erros acima mas a Autenticação resolveu este probleminha.

Se alguem podesse passar para um codigo JSP seria melhor e até me ajudaria pois tbem seria interessante no futuro

Criado 14 de outubro de 2003
Ultima resposta 16 de out. de 2003
Respostas 12
Participantes 5