📄 messageprocess.java
字号:
import java.io.*;
import java.util.Vector;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.swing.JOptionPane;
public class MessageProcess implements Serializable {
public void multipartProcess(
Multipart mp,
MessageDS messageDS,
Vector recieveVector)
{
try {
for (int i = 0; i < mp.getCount(); i++) {
String fileName = (mp.getBodyPart(i)).getFileName();
if (fileName == null)
{
partProcess(mp.getBodyPart(i), messageDS, recieveVector);
}
else if (fileName != null)
{
if (messageDS.getEnclosure() == null)
messageDS.setEnclosure("");
messageDS.setEnclosure(
messageDS.getEnclosure() + getStr(fileName) + ";");
File f = new File("Enclosure", fileName);
FileOutputStream out = new FileOutputStream(f);
InputStream in =
new BufferedInputStream(
(mp.getBodyPart(i)).getInputStream());
int b;
while ((b = in.read()) != -1)
{
out.write(b);
}
out.flush();
out.close();
in.close();
}
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Error:" + e.getMessage());
}
}
//
public void partProcess(
Part p,
MessageDS messageDS,
Vector recieveVector)
{
try {
String contentType = p.getContentType();
File f;
f = new File(
"MailBox",
recieveVector.size()
+ findEmailAddress(messageDS.getAddress())
+ ".txt");
if (contentType.startsWith("text/plain")) {
FileOutputStream out = new FileOutputStream(f);
InputStream in = new BufferedInputStream(p.getInputStream());
int b;
while ((b = in.read()) != -1)
{
out.write(b);
}
out.flush();
out.close();
in.close();
messageDS.setContent("");
BufferedReader breader = new BufferedReader(new FileReader(f));
String str = breader.readLine();
while (str != null)
{
messageDS.setContent(messageDS.getContent() + str + "\n");
str = breader.readLine();
}
breader.close();
messageDS.setIsHtml(false);
}
else if(contentType.startsWith("text/html") && messageDS.getIsHtml())
{
FileOutputStream out = new FileOutputStream(f);
InputStream in = new BufferedInputStream(p.getInputStream());
int b;
while ((b = in.read()) != -1)
out.write(b);
out.flush();
out.close();
in.close();
messageDS.setContent("");
BufferedReader breader = new BufferedReader(new FileReader(f));
String str = breader.readLine();
while (str != null) {
messageDS.setContent(messageDS.getContent() + str + "\n");
str = breader.readLine();
}
breader.close();
}
else if (contentType.startsWith("multipart")) { // 比较严谨的判断
Multipart mp = (Multipart) p.getContent();
multipartProcess(mp, messageDS, recieveVector);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error:" + e.getMessage());
}
}
//
public String getStr(String str) {
try {
String temp_p = str;
byte[] temp_t = temp_p.getBytes("ISO8859-1");
String temp = new String(temp_t);
return temp;
} catch (Exception e) {
return new String("");
}
}
//
public String findEmailAddress(String str) {
try {
int foreindex = str.indexOf("<");
int backindex = str.indexOf("@");
if (foreindex != -1 && backindex != -1)
str = str.substring(foreindex + 1, backindex);
return str;
} catch (Exception e) {
return new String("");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -