javax.activation.UnsupportedDataTypeException: aucun objet DCH pour le type MIME multipart / mixed; frontière
Actuellement, je suis inline de la rédaction d'un code qui sera à l'écoute d'un répertoire. lorsque le répertoire est mis à jour avec .fichier apk, je vais envoyer un mail avec cette .fichier apk à un compte gmail. Je suis en utilisant Jnotify et JAVA Mail dans mon programme.
L'Erreur que je reçois est,
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; boundary="----=_Part_0_145238.1392728439484"
J'ai cherché les solutions données dans le stackoverflow pour obtenir de l'aide, mais aucun d'entre eux où utiles.
Merci d'Avance
public void fileCreated(int wd, String rootPath, String name) {
print("created " + rootPath + " : " + name);
if (name.contains(".apk"))
SendEmail(name);
else
System.out.println("Not the APK file");
}
void SendEmail(String strname){
String Path = "D:/POC/Email/apk folder/"+strname;
System.out.println("Path->" + Path);
Properties props = new Properties();
props.put("mail.smtp.host","173.194.78.108");
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");
System.out.println("Properties has been set properly");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator(){
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication("[email protected]", "senderPassword");
}
}
);
System.out.println("Session Created successfully");
try{
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
message.setSubject("Android : " + strname);
MimeBodyPart msgbody = new MimeBodyPart();
msgbody.setText("This is the message content which is sent using JAVA MAIL 1.4.5");
Multipart mulpart = new MimeMultipart();
mulpart.addBodyPart(msgbody);
//Attachement Starts here.
msgbody = new MimeBodyPart();
javax.activation.DataSource source = new FileDataSource(Path);
msgbody.setDataHandler(new DataHandler(source));
msgbody.setFileName(strname);
message.setContent(mulpart);
System.out.println("Attached the message going to start transporting the mail");
//If I've the code before sending the email is getting sent but without attachment.
//Thread.currentThread().setContextClassLoader( getClass().getClassLoader() );
Transport.send(message);
System.out.println("Mail Sent successfully");
}
catch(MessagingException msg){
msg.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
}
source d'informationauteur Vidhee
Vous devez vous connecter pour publier un commentaire.
JavaMail dépend de certains fichiers de configuration de la carte des types MIME à des classes Java (par exemple,
multipart/mixed
àjavax.mail.internet.MimeMultipart
). Ces fichiers de configuration sont chargées en utilisant le chargeur de classe de l'application. Si le chargeur de classe qui ne fonctionne pas correctement, ces fichiers de configuration ne sera pas trouvé.Vous pouvez simplement ajouter ci-dessous les lignes .. qui résout le problème .
Ce problème peut trouver une solution en prenant en dessous de deux étapes.
Fil de discussion.currentThread().setContextClassLoader( getClass().getClassLoader() );
Ajoutant le thread courant avant d'envoyer l'e-mail est la solution:
M'en dire plus sur l'environnement dans lequel votre code est en cours d'exécution. Ce JDK utilisez-vous? Êtes-vous en cours d'exécution dans un serveur d'application?
Les JavaBeans Activation Cadre (JAF) recherche les fichiers de configuration qui racontent comment cartographier les types MIME pour les classes Java (DataContentHandlers) qui gèrent eux. Il utilise le chargeur de classe pour trouver les fichiers de configuration. Si il y a des problèmes avec le chargeur de classe, les fichiers de configuration peuvent ne pas être trouvé.
Vous pourriez vouloir essayer la solution de contournement décrite icimais bien sûr, il serait préférable de déterminer la cause racine du problème pour vous.
Enfin, vous pouvez simplifier votre programme par la correction de certains de ces commune JavaMail erreurs.
Si votre build.xml fait ceci:
zipfileset src="javamail-1.4.7/mail.jar" exclut="META-INF/"**
Alors vous êtes en enlevant les informations de configuration.
Je suis occupé de la conversion d'un Java 8 projet de Java 10. En même temps, j'ai été mise à jour toutes les dépendances. J'ai été faire une exception similaire et aucune des deux solutions n'a fonctionné pour moi.
J'ai la suite dans ma pom.xml:
J'ai fait un peu plus de recherches et trouvé le lien suivant:
http://www.jguru.com/faq/view.jsp?EID=237257
J'ai donc essayé d'ajouter le suivant dépendance à mon pom.xml:
Qui a résolu le problème, j'ai été en mesure d'envoyer des messages avec des pièces jointes de nouveau.