内容进行处理。现在让 我们看一看在程序上是如何实现的:
import java.io.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class getAttachment{
public static void main(String args[])
{
String host=args[0];
String username=args[1];
String userpassword=args[2];
n=3;//为了简单起见,我默认第三封信为有附件的邮件
Session session =Session.getInstance(new Properties(),null);
Store store=session.getStore("pop3");
store.connect (host,username,userpassword);
Folder folder=store.getFolder ("INBOX");
folder.open(Folder.READ_ONLY);
Message message[]=folder.getMessage();
Object content=message [n].getContent();
if (content instanceof Multipart)
{
handleMultiPart((Multipart)content);
}
else
{
handlePart(message[n]);
}
folder.close();
store.close();
}
public static void handleMultiPart (Multipart multipart)
{
for(int i=0,i
{
handlePart(multipart.getBodyPart(i));
}
}
public static void handlePart(Part part)
{
String disposit=part.getDisposition();
String conType=part.getContentType();
if(disposit==null){//如果只有正文
System.out.println("没有:"+conType);
file://检查 是否为普通邮件
if ((conType.length()>=10)&& (conType.toLowerCase().substring(0,10).equals ("text/plain"))){
part.writeTo(System.out);
}
else {
file://可能为HTML格式的邮件,但是本文还不涉及这方面的内 容故不予以考虑。
System.out.println("其它各是的正 文:"+conType);
part.writeTo(System.out);
}
}
else if (disposit.equals(Part.ATTACHMENT))//否则说明邮件中有附件
{
System.out.println("附件:"+part.getFileName() +:conType);
storeFile(part.getFileName(),part.getInputStream ());
}
else {
System.out.println("其 它:"+disposit);
}
}
public static void storeFile (String fileName,InputStream inputstream)//保存文件
{
File file=new File(fileName);
for(int i=0;file.exists();i++)
{
file= new File(fileName+i);
}
FileOutputStream fileoutputstream =new FileOutputStream(file);
BufferedOutputStream bufferedoutputstream =new BufferedOutputStream (fileoutputstream);
BufferedInputStream bufferedinputstream =new BufferedInputStream(BufferedInputStream);
int n;
while ((n=bufferedinputstream.read())!=-1)
{
bufferedoutputstream.write(n);
}
bufferedoutputstream.flush();
bufferedoutputstream.close();
bufferedinputstream.close();
}
}
本文用了一些问题 和相应的解答,和大家探讨了JavaMail Api的使用方法,希望本文对大家的学习 和工作有所帮助。 |