Réglage du champ d'en-tête «de» dans Java Mimemessage ne fonctionne pas correctement

StackOverflow https://stackoverflow.com//questions/23022600

  •  21-12-2019
  •  | 
  •  

Question

Pour une application Web, je travaille sur j'ai créé une méthode pour envoyer des notifications par courrier électronique.Le message doit provenir d'un compte spécifique, mais j'aimerais que le champ d'en-tête "de" "à lire comme une adresse électronique entièrement différente.Voici mon code (j'ai changé les adresses électroniques actuelles en faux):

public static boolean sendEmail(List<String> recipients, String subject, String content){
    String header = "This is an automated message:<br />"+"<br />";
    String footer = "<br /><br />unsubscribe link here";
    content = header + content + footer;

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            //This is where the email account name and password are set and can be changed
            return new PasswordAuthentication("ACTUAL.ADRESS@gmail.com", "PASSWORD");
        }
      });
    try{
         MimeMessage message = new MimeMessage(session);
         try {
            message.setFrom(new InternetAddress("FAKE.ADDRESS@gmail.com", "FAKE NAME"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
         message.setReplyTo(new Address[]{new InternetAddress("no-reply@gmail.com")});
         for(String recipient: recipients){
             message.addRecipient(Message.RecipientType.BCC,new InternetAddress(recipient));
         }
         message.setSubject(subject);
         message.setContent(content,"text/html");
         Transport.send(message);
         return true;
      }catch (MessagingException mex) {
         mex.printStackTrace();
         return false;
      }
}

Pour la méthode ci-dessus Envoi d'un courrier électronique avec elle aura l'en-tête suivant:

from:    FAKE NAME <ACTUAL.ADRESS@gmail.com>

Je veux qu'il soit lu:

from:    FAKE NAME <FAKE.ADRESS@gmail.com>

Qu'est-ce que je fais mal?Toute aide est appréciée!

Était-ce utile?

La solution

Ce que vous cherchez à faire est appelé "Poifilement".Il semble que vous utilisiez des serveurs SMTP de Google, si tel est le cas, vous ne pourrez pas le faire avec succès.À des fins de sécurité, Google n'autorisera que l'adresse "de" l'adresse e-mail authentifiée.

Voir cette question connexe

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top