part.isMimeType == "Multipart/*" 是否有附件的意思?
Posted
技术标签:
【中文标题】part.isMimeType == "Multipart/*" 是否有附件的意思?【英文标题】:part.isMimeType == "Multipart/*" Does it mean it has an attachment?part.isMimeType == "Multipart/*" 是不是有附件的意思? 【发布时间】:2012-05-08 05:33:42 【问题描述】:我在 android 中有一个电子邮件项目,我可以接收和下载我的邮件及其附件,但现在我想了解邮件是否有附件,以及它有多少附件。
我的意思是我只需要做一个 if 子句,比如:
if(messages[i].hasAttachment)
int numberOfAttachments = messages[i].attachmentNumber;
// do smthng
else
// do smthng
也许它有帮助:我收到了包含此代码示例的身体部位。同时,根据我的主题,如果 isMimeType = "Multipart/alternative" 或 "Multipart/*" ,是否意味着它有附件?
public String getText(Part p) throws MessagingException, IOException
if (p.isMimeType("text/*"))
boolean textIshtml = false;
String s = (String) p.getContent();
textIsHtml = p.isMimeType("text/html");
return String.valueOf(s);
if (p.isMimeType("multipart/alternative"))
// prefer html text over plain text
Multipart mp = (Multipart) p.getContent();
String text = null;
for (int i = 0; i < mp.getCount(); i++)
Part bp = mp.getBodyPart(i);
if (bp.isMimeType("text/plain"))
if (text == null)
text = getText(bp);
continue;
else if (bp.isMimeType("text/html"))
String s = getText(bp);
if (s != null)
return String.valueOf(s);
else
return getText(bp);
return text;
else if (p.isMimeType("multipart/*"))
Multipart mp = (Multipart) p.getContent();
for (int i = 0; i < mp.getCount(); i++)
String s = getText(mp.getBodyPart(i));
// fileName = bp.getFileName();
if (s != null)
return String.valueOf(s);
return null;
【问题讨论】:
【参考方案1】:这是我用来解析附件的代码。以前用multipart/attachment或者multipart/*解析,改成这样:
if( mimeMessage.getContent() instanceof Multipart)
Multipart multipartContent = (Multipart) mimeMessage.getContent();
List<BodyPart> deleteThese = new ArrayList<BodyPart>();
for( int i = 0; i < multipartContent.getCount(); i++ )
MimeBodyPart part = (MimeBodyPart) multipartContent.getBodyPart(i);
String disposition = part.getDisposition();
if( disposition != null
&& ( disposition.equalsIgnoreCase( Part.ATTACHMENT )
|| ( disposition.equalsIgnoreCase( Part.INLINE )
&& !part.isMimeType( PLAIN_TEXT_MIME_TYPE )
&& !part.isMimeType( HTML_MIME_TYPE ) )
) )
// do something with part
基本上,如果电子邮件具有多部分,则可能存在附件,但您必须查看内容配置才能真正了解。 Part.ATTACHMENT 将是您感兴趣的内容,您可以选择忽略或解析 Part.INLINE。
【讨论】:
感谢您的回复,我搜索了内容配置但只有设置的东西,我必须接收,获取内容配置。请给我教程或示例的歌词好吗?以上是关于part.isMimeType == "Multipart/*" 是否有附件的意思?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 ["tag":"google","count":1,"tag":"microsoft",&q
"message":"请求失败,状态码 500","name":"Error","stack":&q
"errors":"errors":["detail":"您无权执行此操作。","code":&qu
"Navicat" , "mysql" , "xxx.war" , "tomcat",“JDK","