这是一个很无聊的作业。大约花了我一天的时间。
介绍下实验工具
邮件服务器用winmail
编程工具用Eclipse
键盘是cherry的红轴机械键盘高键位(不伤手,用立白)
桌子是自由升降桌(站着编程,有利于身体骨骼健康)
首先为了便于程序之间的数据交换,要先设计几个结构体
分别是
GlobalVar 用于存储全局数据,如服务器地址,端口号
UserInfo 存储用户的用户名和密码
GetMailInfo存储接受的邮件信息
MailList 建立一个链表,存储从服务器得来的所有的邮件,里面没一个数据是一个GetMailInfo
SendMailInfo发送邮件的数据结构
public class GlobalVar {
public static String serverHost="192.168.153.133";
public static int SMTPPort=25;
public static int POP3Port=110;
}
public class GetMailInfo {
public String received_from;
public String subject;
public String content;
}
public class SendMailInfo {
public String serverHost="192.168.153.132";
public int serverPort=25;
public String mail_from;
public String rcpt_to;
public String subject;
public String from;
public String content;
}
public class UserInfo {
public String serverHost;
public int serverPort;
public String user;
public String password;
}
mailList.java
import java.util.LinkedList;
public class MailList {
LinkedList<GetMailInfo> mails;
public MailList()
{
mails=new LinkedList<GetMailInfo>();
}
public void putMail(GetMailInfo mail)
{
mails.push(mail);
}
public GetMailInfo getMail()
{
return mails.pop();
}
public int mailCount()
{
return mails.size();
}
}
软件的架构。
采用了一定的分层架构。当然不是MVC。因为我并没有把软件的输入和程序的逻辑分开,这个实在不应该。在处理发送邮件和接受邮件的指令流上

这篇博客介绍了作者使用Java基于Socket设计一个邮件收发客户端的实践过程,包括使用Winmail作为邮件服务器,Eclipse作为编程工具。文章讨论了程序的结构设计,如采用模板模式处理发送和接收邮件的指令流,以及数据结构如GlobalVar、UserInfo等。此外,还提到了软件架构的不足,例如没有完全分离输入输出和逻辑处理,并建议改进日志系统。
最低0.47元/天 解锁文章
2699

被折叠的 条评论
为什么被折叠?



