Buenas!
Tenho uma servlet que deveria enviar um e-mail com base no que é digitado em um form. Toda a parte de pegar os dados do form e passar para a classe funciona (acho) O problema é que está dando falha na autenticação. Como comecei a usar o Java Mail ontem, não tenho muita noção do que pode estar acontecendo. Já procurei alguns tópicos por aqui, testei algumas soluções, mas nenhuma deu certo. Se alguém puder ajudar, agradeço.
public class SendEmail extends HttpServlet {
Properties props = System.getProperties();
public void service (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String message = req.getParameter("solicitacao");
String to = "xxx@xxx.com.br";
String from = req.getParameter("email");
String host = "smtp.poa.terra.com.br";
String assunto = req.getParameter("assunto");
props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ehlo", "true");
System.out.println("Para:" + to);
Authenticator auth = new Autentica("user", "senha");
Session ses = Session.getInstance(props, auth);
try {
MimeMessage msg = new MimeMessage(ses);
msg.setFrom(new InternetAddress(from));
msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(to));
msg.setSubject(assunto);
msg.setSentDate(new Date());
msg.setText(message);
Transport.send(msg);
}
catch (AddressException ae) {
System.out.println("Endereço não existente");
}
catch (MessagingException me) {
me.printStackTrace();
System.out.println("Falha no envio da mensagem");
}
}
}
public class Autentica extends Authenticator {
private String user;
private String pass;
public Autentica (String user, String pass) {
this.user = user;
this.pass = pass;
}
public PasswordAuthentication getPass() {
return new PasswordAuthentication(user, pass);
}
}