1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

javaMail como alterar o Remetente

Prezados estou fazendo uso de um código bem básico para o envio de e-mail e estou notando que o endereço do remetente difere daquele que foi passado, e no lugar esta o endereço da conta de e-mail.

Estou fazendo uso do personal conforme abaixo mais não funciona

InternetAddress from = new InternetAddress("meuendereco@gmail.com","Robson Costa");

quanto ao Personal tudo ok mais quando vou ver o endereço do e-mail do remetente esta o da conta do e-mail e não o endereço do remetente.

Segue código abaixo

public class SendMailApp
{
      public static void main(String[] args) {
            String port = "465";
            String SSL = "2";
            final String user = "prorisc*****@gmail.com";
            final String password = "******";
            String sFrom = "Robson Costa <odinrl****@yahoo.com.br>";
            String sTo   = "robsonlira***@hotmail.com";                      

            Properties props = new Properties();
            /** Parâmetros de conexão com servidor Gmail */
            props.put("mail.smtp.host", "smtp.gmail.com");
            props.put("mail.smtp.socketFactory.port", port);
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.port", port);

            Session session = Session.getDefaultInstance(props,
                        new javax.mail.Authenticator() {
                             protected PasswordAuthentication getPasswordAuthentication() 
                             {
                                   return new PasswordAuthentication(user, password);
                             }
                        });
            /** Ativa Debug para sessão */
            session.setDebug(true);
            try {

                  Message message = new MimeMessage(session);

                  java.util.regex.Pattern pattern = java.util
                                .regex.Pattern.compile("(.+)?<(.+?)>");
                  java.util.regex.Matcher matcher = pattern.matcher(sFrom.trim());
                  // Remetente
                  InternetAddress from = null;

                  if (matcher.find()) {
                     from = new InternetAddress(matcher.group(2) );
                     from.setPersonal(matcher.group(1));
                  } else {
                     from = new InternetAddress(sFrom);
                  }

                  message.setFrom(from); //Remetente
                  //Altera a data de envio da mensagem
                  message.setSentDate(new Date());
                  Address[] toUser = InternetAddress //Destinatário(s)
                             .parse(sTo);  
                  message.setRecipients(Message.RecipientType.TO, toUser);
                  message.setSubject("Enviando email com JavaMail");//Assunto
                  message.setText("Enviei este email utilizando JavaMail com minha conta GMail!");
                  /**Método para enviar a mensagem criada*/
                  Transport.send(message);
                  System.out.println("Feito!!!");
             } catch (MessagingException e) {
                  throw new RuntimeException(e);
            }
      }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.