Como usar JavaMail sem ter que deixar a conta rementente vulnerável

Olá, sempre que usei o JavaMail tive que deixar a conta remente vulnerável, tendo que ir nas opções do tipo que teria que permitir app menos seguro. Eu queria saber se existe alguma forma de usar o JavaMail mas de forma ‘mais segura’, se alguém puder me ajudar ou melhor se existir alguma forma disso ser resolvido no código mesmo. Desde já, agradeço.

public void enviarEmail(String destinatario, String assunto, String mensagem){
	           
	    Properties props = new Properties();
	    props.put("mail.smtp.host", "smtp.gmail.com");
	    props.put("mail.smtp.socketFactory.port", "465");
	    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
	    props.put("mail.smtp.auth", "true");
	    props.put("mail.smtp.port", "465");
	       
	    Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
	            protected PasswordAuthentication getPasswordAuthentication() {
	                      return new PasswordAuthentication(emailRemetente, senhaRemetente);
	            }
	    });
	       
	    session.setDebug(true);
	       
	    try {
	       
	          Message message = new MimeMessage(session);
	          message.setFrom(new InternetAddress(emailRemetente));
	       
	          Address[] toUser = InternetAddress.parse(destinatario);  
	       
	          message.setRecipients(Message.RecipientType.TO, toUser);
	          message.setSubject(assunto);
	          message.setText(mensagem);
	          Transport.send(message);
	       
	    }catch (MessagingException e) {}
	}

Vc pode mover o usuário e senha para um arquivo de propriedade no servidor.

1 curtida

Eu criei um arquivo.properties com os dados no eclipse mesmo, mas continua com erro.