Boa tarde a todos
Estou, apenas para testes, codificando um formulário em .jsp que envia e-mail para uma conta do Hotmail.
Está quase tudo certo, porém ao receber o e-mail noto que o remetente não vem o que foi cadastrado na hora do envio de e-mail. Acaba pegando o destinatário como se fosse o remetente.
Segue código-fonte usado:
mail.jsp:
<%--
Document : index
Created on : 01/04/2013, 14:48:52
Author : sidmar.rodrigues
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form action="enviaremail.jsp" method="post">
<table border="0" align="center" bgcolor="gray">
<tr>
<tr>
<td>
<font color="orange"><b>Nome..:</b></font></td>
<td><input name="nome" type="Text"><font color="orange"></td>
</tr>
<tr>
<td>
<font color="orange"><b>E-mail..:</b> </font></td>
<td><input type="Text" name="de"><font color="orange"></td>
</tr>
<tr>
<td>
<font color="orange"><b>Fone..:</b> </font></td>
<td><input type="Text" name="fone"><font color="orange"></td>
</tr>
<tr>
<td><font color="orange"><b>Assunto..:</b></font></td>
<td><select name="assunto">
<option>Chamados</option>
<option>Contato</option>
<option>Informações</option>
</select><font color="orange"></td>
</tr>
<tr>
<td colspan="2">
<textarea name="obs" rows=10 cols=45>
</textarea>
</td>
</tr>
<tr>
<td><input type="submit" value="Enviar"/></td>
</tr>
</table>
</form>
</body>
</html>
enviaremail.jsp:
<%--
Document : enviaremail
Created on : 01/04/2013, 15:25:24
Author : sidmar.rodrigues
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%@page import="mail.Email" %>
<jsp:useBean id="email" class="mail.Email"/>
<%
String mailServer = "smtp.live.com";
String assunto = request.getParameter("assunto");
String para = "meuemail@hotmail.com";
String de = request.getParameter("de");
String mensagem;
mensagem = request.getParameter("obs")+ "\n";
email.sendMail(mailServer, assunto, para, de, mensagem);
response.sendRedirect("ok.html");
%>
</body>
</html>
Email.java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mail;
import java.util.Date;
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.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
public class Email {
public void sendMail (String mailServer, String subject,String to,String from, String mensagem)throws AddressException, MessagingException {
Properties props = System.getProperties();
props.put("mail.smtp.host",mailServer);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.mime.charset", "ISO-8859-1");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.socketFactory.port", "587");
props.put("mail.smtp.socketFactory.fallback", "true");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication("meuemail@hotmail.com", "senha");
}
});
InternetAddress destinatario = new InternetAddress (to);
InternetAddress remetente = new InternetAddress (from);
session.setDebug(true);
Message message = new MimeMessage(session);
message.setFrom(remetente); //Remetente
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to)); //Destinatário(s)
message.setSubject(subject);//Assunto
//message.setText("Enviei este email utilizando JavaMail com minha conta Hotmail!");
message.setContent(mensagem.toString(), "text/HTML");
/**Método para enviar a mensagem criada*/
Transport.send(message);
System.out.println("Feito!!!");
// return "<center><h2>email enviado com sucesso!!</h2></center>";
}
}
}
}
Alguma sugestão para não estar encontrando ou atribuindo o remetente para a mensagem enviada?
Desde já obrigado a todos