tenho as informações necessarias da proxy: segue ai minha classe
package br.com.essenti.ehub.service.inseguro;
import br.com.essenti.ehub.domain.Consum;
import br.com.essenti.ehub.domain.ConsumDAO;
import br.com.essenti.ehub.domain.cliente.Cliente;
import br.com.essenti.ehub.domain.cliente.ClienteRepository;
import br.com.essenti.ehub.domain.configuracoes.ConfigFinansi;
import br.com.essenti.ehub.domain.configuracoes.ConfiguracoesDAO;
import br.com.essenti.ehub.domain.relay.Relay;
import br.com.essenti.ehub.domain.relay.RelayRepository;
import br.com.essenti.ehub.domain.usuario.Usuario;
import br.com.essenti.ehub.domain.usuario.UsuarioRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.*;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.Map;
import java.util.Properties;
import org.springframework.mail.javamail.JavaMailSenderImpl;
@RestController
@RequestMapping("api/convites")
public class ConviteService {
private static final Logger logger = LoggerFactory.getLogger(ConviteService.class);
@Autowired
ClienteRepository clienteRepository;
@Autowired
RelayRepository relayRepository;
@Autowired
ConfiguracoesDAO dao;
@Autowired
ConsumDAO consumDAO;
@Autowired
UsuarioRepository usuarioRepository;
@Autowired
private JavaMailSenderImpl javaMailSender;
private static final String ASSUNTO = "Ativar sua conta";
private static final String MAIL = "<h2>Olá %s</h2><br>"
+ "<p>Temos uma novidade que irá agilizar a emissão dos seus pedidos, faturas, boletos e NFs.<br>"
+ "Para isto estamos disponibilizando para você o Finansi, um portal financeiro totalmente seguro onde você poderá:<br></p>"
+ "<ul>" + "<li>Consultar seus pedidos em aberto e faturados</li>" + "<li>Gerar segunda via de boleto</li>"
+ "<li>Re-imprimir NFs</li>" + "</ul><br><br>" + "Tudo isso online e de qualquer lugar.<br>"
+ "Com esta nova funcionalidade, temos a certeza de que todo processo ganhará mais velocidade, conforto e segurança.<br>"
+ "Cadastre-se pelo link abaixo e inicie a utilização do nosso portal. <br>"
+ "<p><a href='%s'>Finansi</a></p><br><br>" + "Um abraço de toda equipe<br>" + "%s";
private String getMail(String varejista, String url, String atacadista) {
String mail = String.format(MAIL, varejista, url, atacadista);
logger.info(mail);
return mail;
}
@RequestMapping(path = "/{cgcent}/{url}", method = RequestMethod.GET)
public Map<String, Object> a(@PathVariable("cgcent") String cgcent, @PathVariable("url") String url, HttpServletRequest request) throws MessagingException {
Relay relay = new Relay();
Consum consum = consumDAO.getNomeEmpresa();
Cliente cliente = clienteRepository.findByCgcent(cgcent);
relay.setCliente(cliente);
logger.info(String.format("URL do frontend: %s", url));
logger.info(String.format("URL da request: %s", request.getRequestURL()));
String[] linkar = request.getRequestURL().toString().split("api");
String link = linkar[0] + "#!/cadastro/" + relay.getHash();
logger.info("URL MODIFICADA " + linkar[0]);
sendMail(cliente.getEmail(), ASSUNTO, getMail(cliente.getFantasia(), link, consum.getNomeEmpresa()));
//relay.setPrazo(LocalDateTime.now());
relayRepository.save(relay);
//FIXME buscar o nome do atacadista no cadastro da filial
return Collections.emptyMap();
}
// envio o email aqui.
private void sendMail(String destinatario, String assunto, String mensagem) throws MessagingException {
ConfigFinansi config = dao.getConfiguracoes();
javaMailSender.setHost(config.getHostEmail());
javaMailSender.setPort(config.getPortaEmail());
javaMailSender.setUsername(config.getEmail());
Properties props = System.getProperties();
props.put("proxySet","true");
props.put("socksProxyHost","192.168.1.103");
props.put("socksProxyPort","3128");
javaMailSender.setJavaMailProperties(props);
javaMailSender.setPassword(config.getSenhaEmail());
javax.mail.internet.MimeMessage mail = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mail, true);
helper.setTo(InternetAddress.parse(destinatario));
helper.setFrom(config.getEmail());
helper.setSubject(assunto);
helper.setText("", mensagem);
javaMailSender.send(mail);
}
@RequestMapping(path = "/{hash:.*}", method = RequestMethod.POST, consumes = org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<Usuario> salvar(@PathVariable("hash") String hash, @RequestBody Usuario usuario) {
Relay relay = relayRepository.findByHash(hash);
if (relay.getPrazo().isBefore(LocalDateTime.now())) {
return new ResponseEntity<Usuario>(HttpStatus.FORBIDDEN);
}
usuario.setCliente(relay.getCliente());
return new ResponseEntity<Usuario>(usuarioRepository.save(usuario), HttpStatus.CREATED);
}
}