*/
public void printMessage(Message message, Employee emp, String popServer,
String emailName, String mainPath) {
try {
String from = ((InternetAddress) message.getFrom()[0])
.getPersonal();
if (from == null)
from = ((InternetAddress) message.getFrom()[0]).getAddress();// 从邮件服务器获取发件人地址
// System.out.println( "FROM: " + from);
if (from.indexOf( "@ ") < 0) {
String emailExtend = emailName
.substring(emailName.indexOf( "@ "));
from = from + (emailExtend); // 如果返回没有@就把邮件服务器的后缀加上
}
asp.sys.Email email = new asp.sys.Email(); // 创建邮件对象
email.setType(1); // 设置类型(1为收件)
email.setEmailForm(from); // 设置发件人Email
email.setEmailTo(emp.getEmpEmail()); // 设置收件人的地址
email.setToManId( " "); // 设置收件人的ID(也就是本身登陆用户的ID)
email.setReaded(true);// 设定邮件为未读
email.setEmpId(emp.getId());
String subject = message.getSubject(); // 从邮件服务器获取邮件主题
email.setEmailTitle(subject); // 设置邮件主题
Part messagePart = message;
Object content = messagePart.getContent();
if (content instanceof Multipart) // 判断是否为多部分组成文件(有无附件)
{
Multipart mp = (Multipart) message.getContent(); // 得到
// Miltipart的数量,用于除了多个part,比如多个附件
int mpCount = mp.getCount(); // 得到附件个数
System.out.println( "mpCount: "+mpCount);
String path = " ";// 附件名称
for (int i = 0; i <mpCount; i++) {
BodyPart part = mp.getBodyPart(i);
// 得到邮件附件部份
String disposition = part.getDisposition();
// 保存附件
if (disposition != null
&& disposition.equals(Part.ATTACHMENT)) {
// 得到未经处理的附件名字
String temp = part.getFileName();
String fileName = " ";
if (temp.indexOf( "?= ") > = 0)// 表示是中文或其它国文字的附件名
{ // 除去前11位文件的头
fileName = temp.substring(11, temp.indexOf( "?= "));
// 转换
fileName = base64Decoder(fileName);
} else {
// 否则直接生成文件名
fileName = temp;
}
System.out.println( "有附件: " + fileName);
// 得到文件的扩展名
String extendName = fileName.substring(fileName
.length() - 4, fileName.length());
String name = Math.round(Math.random() * 1000000000)
+ extendName;
path = path + "myt_youjian/emailLog/ " + name + "; ";
InputStream in = part.getInputStream();
FileOutputStream writer = new FileOutputStream(
new File(mainPath + "/email/emailLog/ "