comment envoyer un email html avec fichier joint à l'aide JavaMail
Le code Java suivant est utilisé pour joindre un fichier à un html e-mail et de l'envoyer. Je veux envoyer de pièce jointe avec ce html e-mail. Toutes les suggestions seraient appréciées.
public void sendEmail(final String userName, final String password, final String host, final String html, final List<String> emails, String subject, String file) throws MessagingException
{
System.out.println("User Name: " + userName);
System.out.println("Password: " + password);
System.out.println("Host: " + host);
//Get the session object
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator()
{
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(userName, password);
}
});
if (!emails.isEmpty())
{
//Compose the message
InternetAddress[] address = new InternetAddress[emails.size()];
for (int i = 0; i < emails.size(); i++)
{
address[i] = new InternetAddress(emails.get(i));
}
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(userName));
message.setRecipients(Message.RecipientType.TO, address);
message.setSubject(subject);
MimeBodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart();
messageBodyPart = new MimeBodyPart();
String fileName = "attachmentName";
DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
message.setContent(html, "text/html; charset=utf-8");
message.setContent(multipart);
//send the message
Transport.send(message);
System.out.println("message sent successfully...");
} else
{
System.out.println("No Recieptions");
}
}
Ce qui m'amène juste que la pièce jointe . Mais je veux envoyer des courriels en html avec cet attachement .
- Double de stackoverflow.com/questions/5223079/how-to-send-html-email, stackoverflow.com/questions/14744197/... et bien d'autres.
- Êtes-vous fou ? Avez-vous lu plus de liens et de sujets
- Lire d'abord la face soigneusement
Vous devez vous connecter pour publier un commentaire.
La création d'un mail avec un corps HTML et un attachement signifie, de fait, la création d'un mail dont le contenu est un "multipart entité", qui contient deux parties, l'une d'entre elles étant le contenu HTML, et le second, le fichier joint.
Cela ne correspond pas à votre code actuel:
À ce stade, votre e-mail le contenu de type multipart, qui a seulement 1 partie, qui est votre attachement.
Donc, pour atteindre le résultat escompté, vous devez procéder différemment :
MimeBodyPart
Ce qui se traduit par :