由于项目要求,需要实现一个邮箱服务器,原本打算自己实现一个,google了一下发现一个很好用的.
项目名称是:subethasmtp,地址:https://code.google.com/p/subethasmtp/
用起来也非常方便.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| public void startMailServer() { try { MySimpleMessageListener myListener = new MySimpleMessageListener(); SMTPServer smtpServer = new SMTPServer(new SimpleMessageListenerAdapter(myListener)); smtpServer.setPort(25); smtpServer.start(); } catch (Exception e) { logger.error(e.getMessage(), e); } }
public class MySimpleMessageListener implements SimpleMessageListener { private Log logger = LogFactory.getLog(MySimpleMessageListener.class); @Override public boolean accept(String from, String recipient) { return true; } @Override public void deliver(String from, String recipient, InputStream data) throws Exception { Session session = Session.getInstance(new Properties(), null); try { MimeMessage mm = new MimeMessage(session, data); String msg = mm.getContent().toString(); } catch (Exception e) { logger.error(e.getMessage(), e); } } }
|
如何测试:
下载foxmail之类的客户端,或者直接用outlook.
把stmp的地址改成localhost,并且把邮件的格式设置成纯文本.
ok,现在就写封邮件试试吧.你的邮件内容就可以在你的控制台打印出来了.