Ajuda API JavaMail

0 respostas
A

Ola pessoal tudo bem?
Estou precisando de ajuda.

Estou começando a aprender programação java para web.

escrevi um formulario simples somente para tentar aprender como funciona o envio de email usando a API JavaMail.

Utilizei um código que encontrei na internet, em um tutorial sobre javaMail. Porem nao estou tento muito sucesso ao utiliza-lo

Sera que alguem poderia me auxiliar?

public class Email {
	
		//Método que envia o email
		public static void enviaEmail( String remetente, String destinatario, String assunto, String mensagem){
		 
		Session session = Session.getDefaultInstance(getPropriedades(), getAuthenticator());
		 
		try {
		 
		Message message = new MimeMessage(session);
		message.setFrom(new InternetAddress(remetente)); //Seta o remetente
		message.setRecipients(Message.RecipientType.TO,
		InternetAddress.parse(destinatario)); //Define o destinatário
		message.setSubject(assunto); //Define o assunto
		message.setText(mensagem); //Mensagem do email
		 
		Transport.send(message); //Envia o email
		 
		} catch (MessagingException e) {
		throw new RuntimeException(e);
		}
		}
		 
		//Método que retorna a autenticação de sua conta de email
		public static Authenticator getAuthenticator(){
		 
		Authenticator autenticacao = new Authenticator() {
		 
		public PasswordAuthentication getPasswordAuthentication() {
		 
		//Preencha com seu email e com sua senha
		return new PasswordAuthentication("email", "senha");
		}
		};
		 
		return autenticacao;
		}
		 
		//Método que retorna as propriedades de configuração do servidor de email
		public static Properties getPropriedades(){
		 
		Properties props = new Properties();
		props.put("mail.smtp.host", "smtp.gmail.com"); //SMTP do seu servidor de email
		props.put("mail.smtp.socketFactory.port", "465"); //Porta do servidor smtp
		props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); //Define a conexão do tipo SSL
		props.put("mail.smtp.auth", "true"); //Define que é necessário autenticação
		props.put("mail.smtp.port", "465"); //Porta do seu servidor smtp
		 
		return props;
		}
		

	}

Servlet:

public class OrcamentoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public OrcamentoServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
		
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String destinatario = "[email removido]";
		String assunto = "Orçamento";
		String nome= request.getParameter("nome");
		String empresa = request.getParameter("empresa");
		String email = request.getParameter("email");
		String mensagem = request.getParameter("mensagem");
	    String mensagem_2 = nome +"\n\n"+empresa+"\n\n"+mensagem;
	
	    try {
		new Email().enviaEmail(email,destinatario,assunto, mensagem_2);
	    } catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	    }  
	   System.out.print("Email-> Enviado com sucesso");
		}
}

JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Faça Seu Orçamento</title>
</head>
<body>
		<form action="orcamento" method="post">
	
		Nome: <input type="text" name="nome" /><br />
		Empresa:<input type="text" name="empresa" /><br />
		Email:<input type="text" name="email" /><br />
		<textarea name="mensagem">Escreva Sua Mensagem</textarea>
		
		
		
		<input type="submit" value="Gravar" />
		
		</form>

</body>
</html>

Eu nao entendi muito bem essa parte da autorização. O que eu quero fazer é simplesmente encaminhar o conteudo do formulario para um email. Caso encontrem algum erro nesse codigo por favor me corrijam :slight_smile:

Obrigado

Criado 10 de julho de 2012
Respostas 0
Participantes 1