la lecture de la partie du corps d'un mime multipart
ok, donc j'utilise .getcontent et de recevoir des javax.mail.internet.MimeMultipart@fd13b5 etc.
Je sais que j'ai besoin de quelque chose comme cela dans mon code mais je ne sais pas ce qui est exactement nécessaire.
if (p.isMimeType("text/plain")) {
pr("This is plain text");
pr("---------------------------");
if (!showStructure && !saveAttachments)
System.out.println((String)p.getContent());
} else if (p.isMimeType("multipart/*")) {
pr("This is a Multipart");
pr("---------------------------");
Multipart mp = (Multipart)p.getContent();
level++;
int count = mp.getCount();
for (int i = 0; i < count; i++)
dumpPart(mp.getBodyPart(i));
level--;
} else if (p.isMimeType("message/rfc822")) {
pr("This is a Nested Message");
pr("---------------------------");
level++;
dumpPart((Part)p.getContent());
level--;
pour le moment, je suis en train d'essayer de mettre toutes les informations à astring qui est ensuite affichée sur une interface graphique pour le moment j'ai tout fonctionne bien bar le contenu du corps qui est le fait de montrer.
javax.mail.internet.MimeMultipart@fd13b5. toute aide serait grandement apprécié que im assez coincé.
package EmailTable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Email implements ActionListener
{
private mail mail;
private List mails;
private String password;
private String user;
private String getText;
private boolean textIsHtml = false;
public Email(List mails,String password,String user) throws MessagingException, IOException {
password = "password";
user = "user";
this.mails = mails;
String host = "10..10.10.10";
Properties properties = System.getProperties();
Session session = Session.getDefaultInstance(properties);
Store store = session.getStore("pop3");
store.connect(host, user, password);
Folder folder = store.getFolder("inbox");
folder.open(Folder.READ_ONLY);
Message[] messages = folder.getMessages();
int length = messages.length-1;
for (int i = length; i > length-30; i--) {
mail = new mail();
mail.setEmail(messages[i].getFrom()[0]);
String to = InternetAddress.toString(
messages[i].getRecipients(Message.RecipientType.TO));
if (to != null) {
mail.setEmail2(to);
}
mail.setSubject(messages[i].getSubject());
mail.setDate(messages[i].getSentDate());
mail.setMessage(messages[i]);
mail.setContent(((MimeMessage)messages[i]).getContent());
Email.this.mails.add(mail);
}
}
public void actionPerformed(ActionEvent e) {
//TODO Auto-generated method stub
}
}
Voir ce bien stackoverflow.com/questions/5628395/...
OriginalL'auteur J0rd4n500 | 2012-11-20
Vous devez vous connecter pour publier un commentaire.
Oui, vous avez pour itérer sur chaque groupe musculaire à type, puis d'obtenir le contenu en conséquence. Voici ce que j'ai utilisé pour obtenir le contenu d'un message. Mais encore, je ne suis pas en mesure d'obtenir le contenu de certains messages.
Édité
Fonctionne mieux après la mise en œuvre du code proposé par le projet de Loi.
p est la Partie/groupe musculaire objet que vous auriez à passer à la méthode, le contenu. Voir le mon édité réponse, spécialement le
else
déclarationPouvez-vous me dire, pour vérifier si la pièce jointe est présent que nous avons besoin de vérifier le Contenu-Id. j'.e si Content-Id n'est pas vide alors la partie du corps est une pièce jointe ? comme dans ce code-> if (null != disp1 && !"".equals(disp1)) && (disp1.equalsIgnoreCase(javax.mail.Partie.Pièce JOINTE) || disp1.equalsIgnoreCase(javax.mail.Partie.INLINE)) ) { isAttachment = true; }else if (!"".equals(contentId)){ isAttachment = true; }
OriginalL'auteur ThePCWizard
Cette solution a fonctionné beaucoup mieux pour moi. Je voulais simplement le connecter à mon mail message pour le développement/test. Utiliser le MimeMessage.writeTo(OutputStream) méthode.
Merci pour le commentaire de @zzzzz ci-dessus, qui a lié à cette réponse JavaMail d'Analyse de contenu de l'email, n'arrive pas à le faire fonctionner! (Message.getContent())
OriginalL'auteur carbontax