关于email的收发(200分)

  • 主题发起人 主题发起人 宁采臣
  • 开始时间 开始时间

宁采臣

Unregistered / Unconfirmed
GUEST, unregistred user!
我们的毕业设计是做一套在线的mail收发,由于刚接触java编程,问题很多,
在大家帮助下一个一个解决了,但是还有两个问题毫无头绪。
1.关于附件的收发,在pop3和smtp协议中没有相关的命令,不知道那位大虾能
给与帮助。
2.关于html格式的mail接收问题,现在无法接受html格式的email,不知道如何
判断,以及如何显示。
急需大家帮助
 
我必须先知道你用了什么样的方案来在线发送邮件。
我知道用java 至少有两种方案可以发送邮件。当然不是基于tcp/ip来写。
 
附件都是自己先编码后,在正文部分发送的,具体格式,
找个email软件,找封里面的信,看看信的源码就知道了。
html也一样,它是作为附件发送的。你按附件接收后,
自己解码,作为正文就可以了。
 
在去年的《电子与电脑》上有具体的例子,
具体是哪一期我要到周末回家才知道,或者你和他们的网管联系wangxin_zy@pcc.com.cn
 
http://www.net-wing.net/kangwei下好象有点东西。
 
Try javaMail. I paste the example from java web site. I hope it will be a small help.
:)
BTW, if the attachment is the standard MIME, you can send it and some mail system will show it directly. e.g. Outlook.
/*
* @(#)sendfile.java 1.7 00/01/30
*
* Copyright 1996-2000 Sun Microsystems, Inc. All Rights Reserved.
*
* This software is the proprietary information of Sun Microsystems, Inc.
* Use is subject to license terms.
*
*/
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
/**
* sendfile will create a multipart message with the second
* block of the message being the given file.<p>
*
* This demonstrates how to use the FileDataSource to send
* a file via mail.<p>
*
* usage: <code>java sendfile <i>to from smtp file true|false</i></code>
* where <i>to</i> and <i>from</i> are the destination and
* origin email addresses, respectively, and <i>smtp</i>
* is the hostname of the machine that has smtp server
* running. <i>file</i> is the file to send.
The next parameter
* either turns on or turns off debugging during sending.
*
* @author Christopher Cotton
*/
public class sendfile {
public static void main(String[] args) {
if (args.length != 5) {
System.out.println("usage: java sendfile <to> <from> <smtp> <file> true|false");
System.exit(1);
}
String to = args[0];
String from = args[1];
String host = args[2];
String filename = args[3];
boolean debug = Boolean.valueOf(args[4]).booleanValue();
String msgText1 = "Sending a file./n";
String subject = "Sending a file";

// create some properties and get the default Session
Properties props = System.getProperties();
props.put("mail.smtp.host", host);

Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);

try {
// create a message
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
// create and fill the first message part
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(msgText1);
// create the second message part
MimeBodyPart mbp2 = new MimeBodyPart();
// attach the file to the message
FileDataSource fds = new FileDataSource(filename);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());
// create the Multipart and its parts to it
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
// add the Multipart to the message
msg.setContent(mp);
// set the Date: header
msg.setSentDate(new Date());

// send the message
Transport.send(msg);

} catch (MessagingException mex) {
mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}
}
}
}
 
多人接受答案了。
 
后退
顶部