MessagingExceptionIOException lors de l'envoi du message en java?
J'utilise le code suivant pour envoyer du courrier.Texte d'envoi de message fonctionne bien mais le Mail avec la pièce jointe n'est pas de travail, il donne l'Exception.Comment faire pour résoudre ce
javax.mail.MessagingException: IOException lors de l'envoi du message;
nested exception est la suivante:
javax.l'activation.UnsupportedDataTypeException: pas d'objet MPC pour type MIME multipart/mixed;
boundary="----=_Part_0_10430987.1294298904906"
au com.soleil.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
au javax.mail.De Transport.send0(Transports en commun.java:189)
au javax.mail.De Transport.envoyer(de Transport.java:118)
au Gmailer.GMailSender.sendMailAttach(GMailSender.java:114)
à SendMail.principale(SendMail.java:22)
Causés par: javax.l'activation.UnsupportedDataTypeException: pas d'objet MPC pour type MIME multipart/mixed;
boundary="----=_Part_0_10430987.1294298904906"
au javax.l'activation.ObjectDataContentHandler.writeTo(Source Inconnue)
au javax.l'activation.DataHandler.writeTo(Source Inconnue)
au javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
au javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1745)
au com.soleil.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:636)
... 4 plus
Mail avec pièce Jointe code :
public synchronized void sendMailAttach(String subject, String body,
String sender, String recipients) {
try {
MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
//Create the message part
BodyPart messageBodyPart = new MimeBodyPart();
//Fill the message
messageBodyPart.setText("hi Demo");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
//Part two is attachment
messageBodyPart = new MimeBodyPart();
String filename = "mail.txt";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
//Put parts in message
message.setContent(multipart);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(recipients));
Transport.send(message);
}
catch (MessagingException e) {
System.out.println("MessagingException" + e.getMessage());
}
catch (Exception e) {
System.out.println("Mail Send Exception " + e.getMessage());
}
}
Texte envoyer email code:
public synchronized void sendMail(String subject, String body,
String sender, String recipients) throws Exception {
try {
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(
body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(recipients));
Transport.send(message);
} catch (Exception e) {
}
}
Double de stackoverflow.com/questions/1969667/...
OriginalL'auteur Karthick Ramu | 2011-01-06
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous pourrait rendre votre code un peu plus concis en utilisant
MimeBodyPart.attachFile()
au lieu de querelles de laDataSource
/DataHandler
code vous-même.Deuxièmement, essayez de définir la
Content-Type
etContent-Disposition
les en-têtes sur votre attachement partie par les valeurs appropriées. (attachFile
va définir le Contenu-Disposition pour vous par défaut.) Par exemple,EDIT:
Après avoir réfléchi un peu, ce doit être quelque chose qui cloche avec le chargement des classes. Veuillez vérifier cet autre fil pour voir si elle a recours à votre situation. (Question générale: Probablement un supplément activation.jar dans votre classpath; quelques autres possibilités également pensé pour être la cause.)
OriginalL'auteur dkarp
Utiliser ce code placer ce code et ensuite chek c'est vraiment fonctionne.
Frist, l'importation de ce paquet
OriginalL'auteur Renish Khunt
Je pense que Votre programme n'est pas en mesure de trouver le fichier mail.txt.
Veuillez donner les bons/chemin d'accès complet.
Une exception stacktrace peut donner plus d'idée.
Si possible répondre à cela.
e.printStacktrace();
OriginalL'auteur Ria_546
Cela peut provenir d'une classe de problèmes de charge (duplicat versions de activation.jar). Voir, par exemple, http://forum.springsource.org/archive/index.php/t-69180.html
ou google certains plus
OriginalL'auteur mtraut
OriginalL'auteur user2047855
D'essayer de définir le chemin d'accès exact de votre fichier, l'
mail.txt
.Par exemple, si il est dans
C:
puis aller de l'avant et de l'ensemble du chemin commeet s'il vous plaît noter que, parfois, vous pouvez rencontrer des problèmes avec
("c:\users\mail.txt")
qui a seul inverses donc, pour être sûr il suffit de leur faire double barres obliques inversesAussi assurez-vous toujours que vous utilisez
.printStackTrace()
méthode, car il va vous aider à identifier où exactement votre problème sera découlant de sorte que lorsque vous effectuez une recherche sur ce problème, que vous serez en bonne position pour savoir exactement ce que vous allez être à la recherche pour.OriginalL'auteur Huey Mataruse
Définir cette valeur:
Également vérifier le chemin d'accès au fichier, ou veuillez écrire le chemin complet dans votre journal
OriginalL'auteur Ria_546
Pls consulter ce lien: http://forum.spring.io/forum/osgi-related/dm-server-general/61205-problems-sending-mime-multipart-mails
Il explique la cause probable du problème et de façon générale, informer sur la résolution de même.
Que j'ai rencontré lors de l'utilisation d'apache camel sur jboss fuse. J'ai dû modifier ma pom.xml... voir les extraits ci-dessous:
OriginalL'auteur Oladipupo Aina