鍍金池/ 問答/Java  Linux  網(wǎng)絡(luò)安全/ SMTP如何進(jìn)行接收與發(fā)送?有沒有比較好用的庫?

SMTP如何進(jìn)行接收與發(fā)送?有沒有比較好用的庫?

現(xiàn)在項(xiàng)目中所用的SMTP服務(wù)器(一個(gè)開源庫),只能實(shí)現(xiàn)郵件的接收,不能作為SMTP實(shí)現(xiàn)郵件的發(fā)送。因?yàn)猷]件是客戶端先發(fā)到自己的郵件服務(wù)器(test.com),由郵件服務(wù)器(test.com)進(jìn)行投遞到對(duì)方的郵件服務(wù)器(qq.com)。所以郵件服務(wù)器本身也要具有發(fā)送功能。
我們現(xiàn)在采用的庫是 https://github.com/voodoodyne...
只有接收功能,不能進(jìn)行用戶郵件的投遞。

請(qǐng)問有沒有其他類似的庫?不使用postfix,不使用apache james,因?yàn)橐髷?shù)據(jù)庫由自己項(xiàng)目進(jìn)行管理。

或者,換種思路,當(dāng)本地的郵件服務(wù)器接收到用戶的郵件發(fā)送請(qǐng)求后,再自己寫發(fā)送的方法?javamail可以實(shí)現(xiàn)嗎?用javamail連接到對(duì)方郵件服務(wù)器(qq.com)進(jìn)行發(fā)送?還是說要自己研究rfc協(xié)議,手工寫socket通信?

回答
編輯回答
大濕胸

Java Mail本身是支持SMTP的,一般有QQ注冊(cè)郵箱的話就,可以通過smtp.qq.com(自己郵局的服務(wù)器)向外投遞了。

但你自己的郵件服務(wù)器,向qq.com投遞,你需要知道對(duì)方郵局的服務(wù)器,可以用這個(gè)命令獲得:

nslookup -type=mx qq.com

得到的結(jié)果是 mx1.qq.com、mx2.qq.com和mx3.qq.com,所以你可以向這3臺(tái)中任意一臺(tái)主機(jī)的25端口發(fā)SMTP命令。(但網(wǎng)絡(luò)運(yùn)營(yíng)商可能會(huì)把25端口封掉。)

如果用Java來實(shí)現(xiàn)這一步的話,可以用dnsjava類庫。

2017年4月30日 22:52
編輯回答
背叛者

能跟 postfix 這種正式的傳輸代理對(duì)比,我用過的,就只有 nodejs 上的 haraka , http://haraka.github.io/ 。
當(dāng)然,做這事,最好對(duì) SMTP 協(xié)議本身,及郵件投遞過程有一個(gè)大概的了解。

2017年5月29日 22:47