Java mail de l'expéditeur de l'adresse affichée plutôt que de son nom
Je suis en train d'envoyer des messages à mes amis par le biais de mon Java de l'application de Messagerie. Je suis en mesure de le faire avec succès cependant, le récepteur de la colonne dans la boîte aux lettres affiche l'adresse e-mail complète, plutôt que le nom de l'expéditeur. J'ai essayé de changer divers paramètres, mais encore la boîte aux lettres serait de montrer l'intégralité de l'e-mail plutôt que le nom de l'expéditeur.
à l'aide de cette méthode pour envoyer le message:
public void send(String key){
String to=key;
String from="mygmailid";
String subject="wassp";
String text="Hello";
Properties props=new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.user", "myname");
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 mailSession=Session.getDefaultInstance(props);
Message simpleMessage=new MimeMessage(mailSession);
InternetAddress fromAddress=null;
InternetAddress toAddress=null;
try{
fromAddress=new InternetAddress(from);
toAddress=new InternetAddress(to);
}
catch(AddressException e){
e.printStackTrace();
}
try{
simpleMessage.setFrom(fromAddress);
simpleMessage.setRecipient(RecipientType.TO,toAddress);
simpleMessage.setSubject(subject);
simpleMessage.setText(text);
transport.connect("smtp.gmail.com",465, "[email protected]", "mygmailpassword");
transport.sendMessage(simpleMessage, simpleMessage.getAllRecipients());
transport.close();
}
catch(MessagingException e){
e.printStackTrace();
}
}
Je suis à l'appel de cette méthode:
public static void main(String[] args) {
MailSender mailer=new MailSender();
mailer.send("[email protected]");
}
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir un nom dans le
InternetAddress
à l'aide dejava.io.UnsupportedEncodingException
.Vous devez utiliser le deux chaînes de caractères constructeur de InternetAddress de passe dans l'e-mail l'adresse et le nom de la personne. L'résultant de l'e-mail contiendra une chaîne comme Jarrod indiqué.
La façon dont le champ est affiché est un client spécifique de mise en œuvre détail.
Généralement, si l'expéditeur est dans la forme de
"Sender Name" <[email protected]>
le client va faire la bonne chose en fonction de la configuration.Certains clients en déduire le nom de l'information à partir de leur carnet d'adresses de l'information si elle est manquante.
Les réponses ci-dessus sont correctes mais j'ai trouvé que j'avais besoin de place dans un try catch pour que cela fonctionne, voici ce que j'ai trouvé a travaillé à partir de sendemailwebapp démo de l'application.
Message msg = new MimeMessage(session);
Essayer ce code dans le bloc try.Vous pouvez initialiser votre nom au sein de la setFrom() la méthode de MimeMessage.
c'est à dire,