SMTP如何进行接收与发送?有没有比较好用的库?

现在项目中所用的SMTP服务器(一个开源库),只能实现邮件的接收,不能作为SMTP实现邮件的发送。因为邮件是客户端先发到自己的邮件服务器(test.com),由邮件服务器(test.com)进行投递到对方的邮件服务器(qq.com)。所以邮件服务器本身也要具有发送功能。
我们现在采用的库是 https://github.com/voodoodyne...
只有接收功能,不能进行用户邮件的投递。

请问有没有其他类似的库?不使用postfix,不使用apache james,因为要求数据库由自己项目进行管理。

或者,换种思路,当本地的邮件服务器接收到用户的邮件发送请求后,再自己写发送的方法?javamail可以实现吗?用javamail连接到对方邮件服务器(qq.com)进行发送?还是说要自己研究rfc协议,手工写socket通信?

阅读 5k
2 个回答

能跟 postfix 这种正式的传输代理对比,我用过的,就只有 nodejs 上的 haraka , http://haraka.github.io/
当然,做这事,最好对 SMTP 协议本身,及邮件投递过程有一个大概的了解。

Java Mail本身是支持SMTP的,一般有QQ注册邮箱的话就,可以通过smtp.qq.com(自己邮局的服务器)向外投递了。

但你自己的邮件服务器,向qq.com投递,你需要知道对方邮局的服务器,可以用这个命令获得:

nslookup -type=mx qq.com

得到的结果是 mx1.qq.com、mx2.qq.com和mx3.qq.com,所以你可以向这3台中任意一台主机的25端口发SMTP命令。(但网络运营商可能会把25端口封掉。)

如果用Java来实现这一步的话,可以用dnsjava类库。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题